我有这个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:
为什么我没有被重定向?
答案 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"));
标记。