该应用程序位于.Net framework 3.5和MVC 2 for .NetFramework 3.5
该视图具有jquery功能,单击Add Product:
按钮这将使用Action ProductSubmission
调用控制器WorkFlowTestThe 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 in action,控制器的ProductSubmission没有得到值;虽然我在Ajax调用的“data:”部分中指定了它。
有人可以告诉我是否缺少或如何调试以查看参数未被传递的原因。或者是否有任何其他方法可以在控制器中获取所选值。
我添加了元标记
<head runat="server">
<meta http-equiv="X-UA-Compatible" content="IE=edge;chrome=1" />
<title> Submission </title>
更改了该功能 data:JSON.stringify({“productID”:$(“#prodList”)。val()}),
这在IE 9中不起作用,说JSON未定义,并且在chrome中这可以工作,但值为null。
变化如下: 控制器是: public ActionResult ProductSubmission(string productID,ViewModels.WorkFlowTestViewModel SubmissionModelView)
我添加了元标记
<head runat="server">
<meta http-equiv="X-UA-Compatible" content="IE=edge;chrome=1" />
<title> Submission </title>
jquery函数:
data:JSON.stringify({productID:$(“#prodList”)。val()}),
正如所提到的,IE中的运行时错误“JSON未定义”但在chrome中它可以工作,但值仍为空。
答案 0 :(得分:1)
更改您的操作方法,使其接受参数string productID
而不是string prodSelected
。
答案 1 :(得分:0)
JSON.stringify()
为contentType
时, application/json
数据
data: JSON.stringify({"productID" : $("#prodList").val()})