如何使用JavaScript / jQuery获取下拉列表的选定值?

时间:2014-05-19 21:09:09

标签: asp.net-mvc

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

如果值是字符串,则第一个代码可以正常工作,但对于int(具有ID)不起作用。

查看:

@using (Html.BeginForm("DDL", "Store", FormMethod.Post,
new { id = "Form1ID",
      data_PeoplAction = @Url.Action("People")
}))
{
<fieldset>
    <label for="Cities">Select a city</label>
    @Html.DropDownList("Cities", ViewBag.Cities as SelectList,
     new { id = "CitiesID" })
</fieldset>
}

<script src="@Url.Content("~/Scripts/populat.js")"></script>

如果CityCode是“LA”,则“NY”值正确传递,并且(字符串代码)数据的控制器更改(int ID)正确

ViewBag.Cities = new SelectList(DB.myBase, "CityCode", "CityName");

什么不适用于ID

的Controler:

    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;
}

我将很感激帮助

1 个答案:

答案 0 :(得分:0)

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

 $('#OneID').change(function () {
        var URL = $('#FormID').data('iLtAction');
        var selectedValue = $(this).val();
        $.getJSON(URL, { someValue : selectedValue }, function (data) {
        });
    });

从Controller获取someValue

了解更多信息getJSON