应用程序使用。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()})