没有得到参数值在控制器ajax调用-



应用程序使用。net framework 3.5和。net framework 3.5的MVC 2

视图有jquery函数click on button Add Product:

用ProductSubmission动作调用控制器WorkFlowTest

The part of  controller is:
  [AcceptVerbs(HttpVerbs.Post)]
     public ActionResult ProductSubmission(string prodSelected,  
          ViewModels.WorkFlowTestViewModel SubmissionModelView)
     {
        SubmissionModelView.selectedProd = prodSelected   ;
        return View("Submission", SubmissionModelView);
     }
The part of  view is:
    <script src="/Scripts/jquery-1.4.1.js" type="text/javascript"></script>
    <script src="/Scripts/jquery-1.4.1.min-vsdoc.js" type="text/javascript"></script>
    <script src="/Scripts/jquery-1.4.1-vsdoc.js" type="text/javascript"></script>
    <script type="text/javascript">
      $(function() {
       $("#addProd").click(function() {
        var selectedID = $("#prodList").val();
        $.ajax({
        url: "/WorkFlowTest/ProductSubmission/" ,
            type: 'POST',
            data: {"productID" : $("#prodList").val()},
            contentType: 'application/json; charset=utf-8',
            success: function(data) {
                //alert(data.success);
                alert("success");
            },
            error: function() {
                alert("error");
            }
        });
    });
});

 <select id ="prodList" style = "width:150px">
                        <option value ="GL " >GL </option>
                        <option value ="Property"   
                                     selected="selected">Property </option>
                        <option value ="Package" >Package </option>
                        <option value ="Island" >Island </option>
                        </select>
                     </td>
<td style="width: 313px"><input type ="button" id="addProd" value ="Add Product" />

在jQuery函数中,我得到了下拉"prodList"的选定值,但控制器的参数prodSelected在操作中,ProductSubmission没有得到该值;虽然我已经在Ajax调用的"data:"部分中指定了它。

有人能告诉我,如果我失踪或我如何调试,看看为什么参数没有得到传递。或者是否有其他方法来获取控制器中的选定值。

我添加了meta标签
<head runat="server">
 <meta http-equiv="X-UA-Compatible" content="IE=edge;chrome=1" />
<title> Submission </title>

改变功能数据:JSON。stringify({"productID":$ (" # prodList ") .val ()}),

这在IE 9中不起作用,说JSON未定义,在chrome中这可以工作,但值为空。

变化如下:控制器为:public ActionResult ProductSubmission(string productID, ViewModels. view . view . view)WorkFlowTestViewModel SubmissionModelView)

我添加了meta标签
<head runat="server">
 <meta http-equiv="X-UA-Compatible" content="IE=edge;chrome=1" />
<title> Submission </title>

jquery函数:

数据:JSON。stringify ({productID: $ (" # prodList ") .val ()}),

如上所述,在IE中给出运行时错误"JSON是未定义的",但在chrome中它的工作原理,但值仍然是null。

改变你的动作方法,使它接受参数string productID而不是string prodSelected

JSON.stringify()的数据,当你有contentType作为application/json

data: JSON.stringify({"productID" : $("#prodList").val()})

最新更新