无法重载 Ajax.BeginForm 的提交方法
Unable to overload submit method of Ajax.BeginForm
我正在尝试从我的剃刀视图提交一个ajax表单,我希望控制器返回一个JSON对象。当我使用("#form0").submit(alert("hi");)时,数据会进入控制器,我会收到警报。但是,当我使用 ("#form0").submit(function(){alert("hi");});数据未传递,并且我没有收到警报。我感觉这是我的语法中缺少的小东西。以下是相关代码:
jquery:
$(function () {
//setting up the schedule modal dialoag.
$("#schedModal").dialog({
buttons: {
Submit:
function () {
$("#form0").ajaxSubmit(function () {
//this is where I want to put the magic, but I need the alert to fire first.
alert("hi");
return false;
});
},
Cancel:
function () {
$(this).dialog("close");
}
},
autoOpen: false,
minHeight: 350,
modal: true,
resizable: false
});
目标视图:
@model FSDS.DataModels.Schedule
@using (Ajax.BeginForm("scheduleNew", null, new AjaxOptions { UpdateTargetId = "partial" }, new {}))
{
@Html.ValidationSummary(true)
<div class="editor-label">
@Html.LabelFor(model => model.ScheduleName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.ScheduleName)
@Html.ValidationMessageFor(model => model.ScheduleName)
</div>
@* tons of other labels and editor fields go in here, omitted for brevity. *@
}
控制器(如果重要):
[HttpPost]
public ActionResult scheduleNew(Schedule schedule)
{
if (Request.HttpMethod == "POST")
{
FSDSDBEntities context = new FSDSDBEntities();
if (ModelState.IsValid)
{
context.Schedules.AddObject(schedule);
context.SaveChanges();
}
return Json(schedule);
}
else
{
return PartialView();
}
}
只需使用 $('#form0').submit();
:
Submit: function () {
$('#form0').submit();
}
然后在 AjaxForm 中定义一个 OnSuccess
处理程序,当 AJAX 请求成功时将调用该处理程序:
@using (Ajax.BeginForm("scheduleNew", null, new AjaxOptions { OnSuccess = "success", UpdateTargetId = "partial" }, new {}))
最后success
JavaScript 处理程序:
function success(data) {
// the form was successfully submitted using an AJAX call.
// here you could test whether the data parameter
// represents a JSON object or a partial view
if (data.ScheduleName) {
// the controller action returned the schedule JSON object
// => act accordingly
} else {
// the controller action returned a partial view
// => act accordingly
}
}
相关文章:
- 调用DOM提交方法时未激发jQuery提交事件
- 使用jQuery的.on()方法阻止Ajax.BeginForm中提交的默认行为
- 使用GET方法通过AJAX成功提交表单后更改url
- JavaScript 表单操作更改RC方法发布文本输入提交
- 在输入类型提交按钮上调用 C# 方法
- 提交表单前使用确认对话框的正确方法
- 表单提交未到达控制器方法
- 无法重载 Ajax.BeginForm 的提交方法
- 使用ajax提交邮件表单的正确方法?-没有JQuery
- 可以'使用方法帖子时,不要提交ajaxForm
- 在表单提交后显示消息的方法
- 在表单提交之前,save()内部的方法调用显示模板的返回
- 使用表单上的页面锚点提交方法=get
- 在 JS 中的表单验证方法中获取表单提交方法的输出
- jQuery提交方法不提交表单数据
- 如何正确处理控制器提交方法中的远程属性验证
- jQuery提交方法不提交整个表单
- 表单提交方法在反应.js中不起作用
- 无法使用通过 Jquery 1.4 实现 ajax 的覆盖提交方法清除文本字段
- 以下数据提交方法的缺点是什么?