Asp.net mvc 如何使用JavaScript/jQuery获取dropdownlist的选定值?

Asp.net mvc 如何使用JavaScript/jQuery获取dropdownlist的选定值?,asp.net-mvc,Asp.net Mvc,他希望将DDL中所选项目的ID(项目从控制器中的数据库检索到ViewBag)从列表传递到控制器,控制器将在其中自行处理 如果值是字符串,则第一个代码运行良好,但对于int(具有ID)则不起作用 视图: 什么不适用于ID 控制器: public ActionResult DDL() { ViewBag.Cities = new SelectList(DB.myBase, "CityID", "CityName"); return View();

他希望将DDL中所选项目的ID(项目从控制器中的数据库检索到ViewBag)从列表传递到控制器,控制器将在其中自行处理

如果值是字符串,则第一个代码运行良好,但对于int(具有ID)则不起作用

视图:

什么不适用于ID

控制器:

    public ActionResult DDL()
    {
        ViewBag.Cities = new SelectList(DB.myBase, "CityID", "CityName");
        return View();
    }

    public ActionResult People(int ID)
    {
        var peop = from s in DB.myBase
                           where s.CityID == CityID
                           select s.Population;

        ViewBag.Popul = peop;
        return View();
    }
populat.js:

$('#CitiesID').change(function () {
    var URL = $('#Form1ID').data('PeoplAction');
    $.getJSON(URL + '/' + $('#CitiesID').val(), function (data) {
    });
});
第二个ID很好,但我无法传递给控制器

$('#OneID').change(function () {
    var e = document.getElementById("OneID");
    var strUser = e.options[e.selectedIndex].value;
}

非常感谢您的帮助

您可以使用
getJSON
的data
属性
将所选值作为参数发送到给定的URL,而不是附加到URL。希望这能解决您的问题:

 $('#OneID').change(function () {
        var URL = $('#FormID').data('iLtAction');
        var selectedValue = $(this).val();
        $.getJSON(URL, { someValue : selectedValue }, function (data) {
        });
    });
并从控制器访问
someValue

$('#OneID').change(function () {
    var e = document.getElementById("OneID");
    var strUser = e.options[e.selectedIndex].value;
}

有关更多信息,请详细说明“如果值是字符串,则第一个代码运行良好,但对于int(具有ID)则不起作用。”我正在努力学习你的英语。目前还不清楚这在哪里失败。也就是说,您的第二个函数只需要以下内容:
var strUser=$(this).val()而不是你的两行。它正在工作。。。没有任何改变,一切正常。。。昨天不起作用。。。谢谢你的关注。感谢您的快速回复。不幸的是,“public ActionResult People(int ID)”中的断点甚至没有被调用。所以问题是控制器的数据类型,Integer vs String?当我更改为String方法时,会被调用,但值为null。如果为int,则不调用该方法。取而代之的是,ViewBag中的ID(int)将添加这样的代码。代码(字符串)也正常工作。因此,您可以通过使用类似“num.toString();”的内容将整数值作为“字符串”发送到控制器,并检查它是否为整数,或者再次在控制器内部检查它是否为ID或代码。也要这样做。希望有帮助。我不知道的原因仍然无效。。。。无论如何,谢谢你的帮助。当做
 $('#OneID').change(function () {
        var URL = $('#FormID').data('iLtAction');
        var selectedValue = $(this).val();
        $.getJSON(URL, { someValue : selectedValue }, function (data) {
        });
    });