如何将选定的下拉值传递给MVC控制器?

时间:2015-07-02 04:17:53

标签: asp.net json asp.net-mvc asp.net-mvc-4 cascadingdropdown

这是AJAX方法和MVC控制器。 下拉列表位于网址“http://localhost:1424/home/drop”中。所以在导航之后,我从下拉列表中选择一个状态,然后当我导航到URL“http://localhost:1424/home/GetStates”时,json数据为空。我在网址上获得的JSON是{“selectedCountyId”:null}。请协助。!!!!!!!!!!!!!!!!!

  $('.ddlCountry').change(function () {
        $('#ddlState').empty();
        $.ajax({
            type: "POST",
            dataType:"json",
            url: "Home/GetStates",
            data: { Id: $('.ddlCountry').val() },
        });
    });




 public ActionResult GetStates(string Id)
    {

        return Json(new { selectedCountyId = Id }, JsonRequestBehavior.AllowGet);
    }

2 个答案:

答案 0 :(得分:1)

您正在使用类选择器,因此可能是在DOM中找到多个元素。

另外我建议您使用Url.Action生成网址,不要这样串起来作为网址,以后会给您带来麻烦。

将您的jquery代码修改为:

$('.ddlCountry').change(function () {
        $('#ddlState').empty();
        var selected = $(this).val(); // get current dropdown element selected value
        $.ajax({
            type: "POST",
            dataType:"json",
            url: '@Url.Action("GetStates","Home")',
            data: { Id: selected  },
        });
});

答案 1 :(得分:0)

试试这个

data: JSON.stringify({ Id: $('.ddlCountry').val() }),

还要确保dropdown拥有class ddlCountry。如果这是id的{​​{1}},则需要dropdown value这样的id

data: JSON.stringify({ Id: $('#ddlCountry').val() }),