无法重定向到新页面Ajax beginform

时间:2016-06-11 09:03:25

标签: javascript c# asp.net-mvc

我有这个Ajax.Beginform-code:

<script>
    function createsuccess(data) {
        if (data.RedirectUrl) {

            window.location.href = data.RedirectUrl;
        }
    }
</script>
     @using (Ajax.BeginForm("New", "Profile", null, new AjaxOptions()
            {
                HttpMethod = "Post",
                InsertionMode = InsertionMode.Replace,
                OnSuccess = "createsuccess"
            }))
            {
                @Html.AntiForgeryToken()
                @Html.ValidationSummary(true, "", new { @class = "text-danger" })

               //HTML-code
            }

这是我在Profile控制器中的新操作:

[HttpPost]
public ActionResult New(Profile model)
{
    model.UserId = UserId;

    if (_profileService.CreateProfile(model) > 0)
    {
        var encryptedProfileId = Encryption.Protect(model.ProfileId.ToString(), UserId.ToString());
        Response.Cookies["ProfileId"].Value = encryptedProfileId;

        return Json(new { RedirectUrl = Url.Action("Index", "Welcome") });
    }
    return View();
}

当我运行它并尝试创建新的配置文件时,我不是重定向。相反,我被重定向回到我的新页面,显示以下JSON:

enter image description here

为什么我没有被重定向?

1 个答案:

答案 0 :(得分:0)

将“jquery.unobtrusive-ajax.js”添加到您的页面。如果你在System.Web.Optimization中使用“捆绑”功能,一种简单的方法是将它添加到jQuery包中:

.navigation > li > a { padding: 13px 0 }
.navigation > li > ul { display: none; }
.navigation > li:hover > ul { display: block; }

您还可以添加指向脚本的bundles.Add(new ScriptBundle("~/bundles/jquery") .Include("~/Scripts/jquery-{version}.js") .Include("~/Scripts/jquery.unobtrusive-ajax.js")); 标记。