如何通过dropdownlist选择值来获取mvc中控制器中的函数

时间:2018-06-10 13:48:58

标签: javascript asp.net-mvc

我是asp.net MVC的新手,我有一个从数据库填充的下拉列表。现在我需要在控制器中的get函数中发送所选值(id),以便我可以加载选定的值细节 这是我试过的代码。

查看:

 @Html.DropDownListFor(model => model.ProductName, new SelectList(Model.ProductsList, "ProductID", "ProductName"),  new
                   {
                       id = "Productslist",
                       @class = "GreenDropDownListStyle",
                       @datastyle = "dropdown",
                   })

java脚本代码:

        <script type="text/javascript">
            $(document).ready(function () {
                $("#Productslist").change(function () {
                    debugger;
                    var SelectedProductID = this.value;
                    if (SelectedProductID != "") {
                        $.ajax(
                            {
                                type: 'GET',
                                url: '/Inventory/ViewProduct',
                                data: { ProductID: SelectedProductID },
                                contentType: 'application/json; charset=utf-8',
                                success: function (details) {
                                    //alert("success"); 
                                },

                            });
                    } else {
                    }

                });

            });
        </script>

此代码可以获取所选的id并查看成功警报消息,但它不会将所选值(id)发送到控制器中的post函数

Cotroller:

[HttpPost]
    public ActionResult ViewProduct(int? ProductID)
    {
         if (ProductID != null && ProductID >0)
            {

            }
            else
            {
               message = "";
            }
        return View();
    }

2 个答案:

答案 0 :(得分:0)

您应在此处指定POST作为http方法。

$.ajax({
   method: 'POST',
   url: '/Inventory/ViewProduct',
   data: { ProductID: SelectedProductID },
   contentType: 'application/json; charset=utf-8',
   success: function (details) {
      //alert("success"); 
   }
});

值得检查this link以获取有关如何使用jquery ajax函数的更多详细信息。

顺便说一句,如果您使用的是1.9.0之前的jQuery版本,请使用type: 'POST'而不是method: 'POST'

答案 1 :(得分:0)

试试这个:

var jsn = { ProductID: SelectedProductID };
            jsn = JSON.stringify(jsn);
            $.ajax({
                type: "POST",
                url: "/Inventory/ViewProduct",
                data: jsn,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                async: false,
                success: function () {

                }
            });