我正在ASP.NET MVC 3应用程序和我有一个jQuery对话框与确定按钮。点击确定我想使用jQuery AJAX提交表单。提交使用jquery ajax的asp.net MVC 3表单
我的AJAX调用看起来是这样的:
$("#free-trial").dialog({
autoOpen: false,
autoResize: true,
buttons: {
"OK": function() {
if (notvalid()) {
$(".ui-dialog-titlebar").hide();
$("#dialog-freetrial-insufficientdata").dialog({ dialogClass: 'transparent' });
$("#dialog-freetrial-insufficientdata").dialog("open");
}
else {
$('#frmCreateTrialAccount').live('submit', function (e) {
e.preventDefault();
$.ajax({
cache: false,
async: true,
type: "POST",
url: $(this).attr('action'),
data: $(this).serialize(),
success: function (data) {
alert(data);
}
});
});
jQuery(this).dialog('close');
}
}
},
open: function() {
$('.ui-dialog-buttonset').find('button:contains("OK")').focus();
$('.ui-dialog-buttonset').find('button:contains("OK")').addClass('customokbutton');
}
});
这里作为形式如下:
@using (Html.BeginForm("CreateTrialAccount", "Home", FormMethod.Post,
new { Id = "frmCreateTrialAccount" }))
{
}
和控制器动作看起来是这样的:
[HttpPost]
public JsonResult CreateTrialAccount(FormCollection form) {
return Json("dummy data");
}
,但形式并不在此法提交。
我已经包含在页面布局这些文件:
<link href="@Url.Content("~/Content/css/smoothness/jquery-ui-1.10.0.custom.css")" rel="stylesheet" type="text/css" media="screen"/>
<script src="@Url.Content("~/Scripts/jquery-1.9.1.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-ui-1.10.2.custom.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
请建议我解决这个。
的样子,一切都很好。你是否检查过提交事件?在$('#frmCreateTrialAccount')中做一个alert或console.log。live('submit','。 – 2013-05-02 13:27:55
是的,我试过并且它不显示警报 – DotnetSparrow 2013-05-02 13:35:12