我有一个MVC 3项目,它有一个简单的表单,包含在PartialView中: (表单位于加载此部分
的视图中的“<div id="form"> </div>
”中
@using (Ajax.BeginForm("Submit", "Form", new AjaxOptions
{
HttpMethod = "POST",
UpdateTargetId = "form"
}))
{ .... }
我的控制器是:
[HttpPost]
public PartialViewResult Submit(FormElement form)
{
....
return PartialView("_RequestFormSubmitted");
}
我遇到的问题是,当我提交表单时,我会被定向到视图结果URL(/ Form / Submit /),而不是停留在当前页面上,并返回部分视图。
我错过了一些非常明显的东西吗? 我可以错过一个脚本参考吗?
我在页面末尾包含以下脚本:
<script src="@Url.Content("~/Scripts/jquery-1.7.2.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
编辑:
我的表单现在在HTML
中呈现如下<form action="/Form/Submit" data-ajax="true" data-ajax-method="Post" data-ajax-mode="replace" data-ajax-update="#form" id="form0" method="post"> <hgroup>
<h6 class="icon"><img src="/Content/img/icon/dining.png"> YOUR<br>DINING<br>REQUEST</h6>
</hgroup>
<ul>
<li class="field type-select">
<label for="Name">Your name</label>
<input class="text-box single-line" data-val="true" data-val-required="The Your name field is required." id="Name" name="Name" type="text" value="">
<span class="field-validation-valid" data-valmsg-for="Name" data-valmsg-replace="true"></span>
</li>
<li>
<input type="submit" value="Submit">
</li>
</ul>
答案 0 :(得分:2)
是的,解决了它:我没有包括
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
(但我有“非ajax!”)
感谢大家的帮助!
答案 1 :(得分:1)
你需要使用
new AjaxOptions { InsertionMode = InsertionMode.Replace, HttpMethod = "Post", UpdateTargetId = "listForm" }