【发布时间】:2011-11-25 20:16:12
【问题描述】:
在 ASP.Net MVC 3.0 中,我使用的是 Ajax.Beginform
并点击 JsonResult 在表单成功时,我正在调用一个 jQuery 函数。 但由于某种原因,我的表单正在重定向到 JsonAction
我的观点
@using (Ajax.BeginForm("ActionName", "Controller", null, new AjaxOptions
{
HttpMethod = "POST",
OnSuccess = "ShowResult"
}, new { id = "myform" }))
{
// All form Fields
<input type="submit" value="Continue" class="button standard" />
}
我的控制器
public JsonResult ActionName(FormCollection collection)
{
return Json(new { _status },JsonRequestBehavior.AllowGet);
}
jQuery
<script type="text/javascript">
function ShowResult(data) {
// alert("I am at ShowResult");
if (data.isRedirect) {
window.location.href = json.redirectUrl;
}
}
由于某种原因,当我单击提交时。 它运行 JSonResult 并将页面重定向到 host/controller/actionname 我已经包括了我的
<script src="@Url.Content("jquery.unobtrusive-ajax.min.js")"></script>
在我的 layout.cshtml 中
谁能告诉我哪里出了问题?
我发现了问题。现在我必须找到解决方案 提交时 我正在验证我的表单
$("#myform").validate({
submitHandler: function (form) {
// my logic goes here....
}});
如果我排除验证 Ajax 表单按预期工作。 但是,如果我验证我的表单,那么 ajax 表单无法按预期工作 谢谢
【问题讨论】:
-
你的javascript回调被调用了吗?您是否与提琴手核对过,您的 JSon 对象是否已正确返回到浏览器? 重定向到 JsonAction 到底是什么意思?
-
我的 java 脚本在同一页面中。因为它正在重定向到不同的页面。 JavaScript 不能被调用。是的,我的 Json 对象按预期返回。我在新的重定向页面中看到 json 结果
标签: asp.net-mvc-3 ajax.beginform