c# - 发出ajax请求时,如何在使用c#的url参数中使用jquery变量?

标签 c# jquery ajax asp.net-mvc

这是我的代码:

var selectedFacility = $("#Facility").val();

$.ajax({
        type: "Post",
        url: "@Url.Action("GetLocations", "Item", new { Facility = "selectedFacility goes here"})",
        dataType: 'json',
        success: function (data) {
            for (var i = 0; i < data.length; i++) {
                $('#Location').append('<option value="' + data[i].Value + '">' + data[i].Text + '</option > ');
            }
        }
    });

Controller 操作:

public JsonResult GetLocations(string facility) {
        var Locations = new List<SelectListItem>{};
        Locations.AddRange(db.Locations.Where(l => l.Facility == "LAT").ToList().Select(l => new SelectListItem {
            Text = l.Name,
            Value = l.ID.ToString()
        }));
        return Json(Locations, JsonRequestBehavior.AllowGet);
    }

这是我需要使用变量的行:

new { Facility = "selectedFacility goes here"})",

我可能会遗漏一些明显的东西,但我需要在 Url.Action() 参数中使用 selectedFacility jquery 变量。有没有办法可以做到这一点?

最佳答案

我认为您不能在 Url.Action() 方法中使用 $("#Facility").val(); 参数。

您正在使用http POST我认为您可以尝试将ajax数据对象设置为参数。

var selectedFacility = $("#Facility").val();

$.ajax({
        type: "Post",
        url: '@Url.Action("GetLocations", "Item")',
        data: { Facility: selectedFacility },
        dataType: 'json',
        success: function (data) {
            for (var i = 0; i < data.length; i++) {
                $('#Location').append('<option value="' + data[i].Value + '">' + data[i].Text + '</option > ');
            }
        }
    });

关于c# - 发出ajax请求时,如何在使用c#的url参数中使用jquery变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55831768/

相关文章:

c# - 如何强行关闭串口连接?

c# - Linq 问题 : Combined Where Clauses

javascript - AJAX 语法错误 : JSON. 解析:意外字符

javascript - 在 html div 标签中显示执行的脚本结果

javascript - 无法让我的脚本 (jquery) 将文本从第 1 帧插入到第 2 帧的文本区域中。

javascript - $.post() 调用的返回值

c# - 如何解决 C# 中的 OutOfMemory 异常?

c# - mstest 如何创建适用于同一对象(累积)的测试方法?

javascript - 使用jquery计算表行的和和减法

jQuery - 向上滑动/编辑 html/向下滑动