ASP.Net MVC 3.0 Ajax.BeginForm重定向到一个页面?

HaB*_*aBo 9 ajax.beginform asp.net-mvc-3

在ASP.Net MVC 3.0中,我使用的是Ajax.Beginform

并且在我调用jQuery函数的表单成功时命中JsonResult.但由于某种原因,我的表单重定向到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" />
}
Run Code Online (Sandbox Code Playgroud)

我的控制器


public JsonResult ActionName(FormCollection collection)
{
    return Json(new { _status },JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)

jQuery的


<script type="text/javascript">
function ShowResult(data) {
   // alert("I am at ShowResult");
    if (data.isRedirect) {
        window.location.href = json.redirectUrl;
    }
}
Run Code Online (Sandbox Code Playgroud)

出于某种原因,当我点击提交.它运行JSonResult并将页面重定向到我已包含的主机/控制器/动作名称

<script src="@Url.Content("jquery.unobtrusive-ajax.min.js")"></script>
Run Code Online (Sandbox Code Playgroud)

在我的layout.cshtml中

任何人都可以告诉我什么可能是错的?

我发现了这个问题.现在我必须找到提交的解决方案我正在验证我的表格

$("#myform").validate({
    submitHandler: function (form) {
   // my logic goes here....
 }});
Run Code Online (Sandbox Code Playgroud)

如果我排除验证Ajax表单按预期工作.但是,如果我验证我的表单,那么ajax表单没有按预期工作谢谢

Ada*_*SFT 18

当这种情况发生时几乎总是因为你的脚本文件没有被加载

来自:

http://completedevelopment.blogspot.com/2011/02/unobstrusive-javascript-in-mvc-3-helps.html

  1. 在web.config中设置提到的标志:
    1. 包含对jQuery库〜/ Scripts/jquery-1.4.4.js的引用
    2. 在〜/ Scripts/jquery.unobtrusive-ajax.js中包含一个引用这个魔术的库的引用

所以加载fiddler http://fiddler2.com并查看是否正在调用和加载脚本.