Jquery 无法将表单内容传递到actionresult中的视图模型
我试图传递一个字符串(表示已单击的按钮)和表单的内容,但当代码到达actionresult时,vModel对象始终为null。谁能帮我修一下吗 以下是代码片段:Jquery 无法将表单内容传递到actionresult中的视图模型,jquery,ajax,asp.net-mvc,Jquery,Ajax,Asp.net Mvc,我试图传递一个字符串(表示已单击的按钮)和表单的内容,但当代码到达actionresult时,vModel对象始终为null。谁能帮我修一下吗 以下是代码片段: var form = $('#Application'); if (form.valid()) { var data = { 'submitButton': "Submit your application", 'vModel':
var form = $('#Application');
if (form.valid()) {
var data = {
'submitButton': "Submit your application",
'vModel': JSON.stringify(form.serialize())
};
$("#submit-application-dialog").dialog({
resizable: false,
height: "auto",
width: 400,
modal: true,
buttons: {
"Submit application": function () {
$.ajax({
url: form.attr('action'),
type: 'POST',
data: data,
success: $("#submit-application-dialog").dialog("close")
});
},
Cancel: function () {
$(this).dialog("close");
}
}
});
}
结果是:
[HttpPost]
public ActionResult Application(string submitButton, ApplicationViewModel vModel)
{
...
任何帮助都将不胜感激
谢谢。我做了类似的事情,将值添加到查询字符串中,如下图所示,而不是添加控制器操作参数
var myData = $('#frmMyForm').serialize();
myData = myData + "&ButtonClicked=" + "Button1";
$.ajax({
type: "POST",
url: "@Url.Action("MyActionName", "MyControllerName")",
data: myData,
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
success: function(data) {
\\Do stuff here if needed;
}
然后在控制器中,我从表单集合中提取值
var buttonName = Request.Form["ButtonClicked"];
也许有更好的或者说不那么笨重的方法来做这件事,但这对我来说很有效
希望有帮助
你好,我昨晚想到了一个更好的解决方案。向视图模型中添加一个属性,可能称为“ButtonClicked”
然后在JQuery中,捕获提交的click事件,如下所示,并相应地设置按钮名称
<script>
$(document).ready(function () {
$(document).on("click", "#btnSubmitButton", function () {
$("#ButtonClicked").val("ThisButton");
});
});
</script>
$(文档).ready(函数(){
$(文档)。在(“单击”上,“#btnSubmitButton”,函数(){
$(“#按钮单击”).val(“此按钮”);
});
});
然后将其绑定到发布的模型。
谢谢谢谢,这确实帮助了我解决问题。因此,我在ActionResult中保留了最初的两个属性,但使用了您的“var myData…”代码,现在它可以正确地传递所有内容:)。@Diz19791-Hi。。我认为有一个更好的解决办法。。我已经编辑了答案。助教