Asp.net mvc asp.net mvc使用ajax,但回调获胜';t重定向

Asp.net mvc asp.net mvc使用ajax,但回调获胜';t重定向,asp.net-mvc,asp.net-mvc-4,asp.net-ajax,Asp.net Mvc,Asp.net Mvc 4,Asp.net Ajax,我在同一父视图中使用ajax处理两个不同的局部视图。ajax请求成功提交,并调用OnSuccess()函数,但页面不会重定向。这是我的密码。我已经确保returnurl是一个绝对地址。 视图: 编辑: 父视图控制器 [AllowAnonymous] [DisableCache] public ActionResult Login(string returnUrl ="/") { var path = VirtualPathUtility.ToAbsolut

我在同一父视图中使用ajax处理两个不同的局部视图。ajax请求成功提交,并调用OnSuccess()函数,但页面不会重定向。这是我的密码。我已经确保returnurl是一个绝对地址。 视图:

编辑: 父视图控制器

[AllowAnonymous]
    [DisableCache]
    public ActionResult Login(string returnUrl ="/")
    {
        var path = VirtualPathUtility.ToAbsolute(returnUrl);
        var url = new Uri(Request.Url, path).AbsoluteUri;
        ViewBag.ReturnUrl = url;
        return View();
    }

问题是我直接在javascript中访问viewbag。答案是用这个替换我的javascript

@section CustomScripts {
 <script type ="text/javascript">
     function OnSuccess() {
         var returnUrl = @Html.Raw(Json.Encode(ViewBag.ReturnUrl))
         window.location = returnUrl;
    }
</script>
@节自定义脚本{
函数OnSuccess(){
var returnUrl=@Html.Raw(Json.Encode(ViewBag.returnUrl))
window.location=returnUrl;
}

}

如果包含
OnSuccess
函数的视图未作为
\u LoginPartial
局部视图的一部分呈现,比
@ViewBag.ReturnUrl
的值还大。你也没有在
\u LoginPartial
POST action方法中设置
ViewBag.ReturnUrl
。我想JavaScript也可以使用一些分号。@渐近错误我喜欢你总是在我身边,伙计!我忘了包含父视图控制器,我将发布它,这也是设置URL的地方。部分中的returnURL来自旧代码,未使用。我想如果父视图中有returnURL,javascript回发将能够使用父视图CustomScripts部分中呈现的脚本。至于分号,当我输入分号时,它们总是给我一个语法错误。
[AllowAnonymous]
    public ActionResult _LoginPartial(string returnUrl)
    {
        ViewBag.ReturnUrl = returnUrl;
        return PartialView(new LoginModel());
    }

    [HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public ActionResult _LoginPartial(LoginModel model, string returnUrl)
    {
        if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password,     persistCookie: model.RememberMe))
        {
            return PartialView();
        }

        // If we got this far, something failed, redisplay form
        ModelState.AddModelError("", "The user name or password provided is incorrect.");
        return PartialView(model);
    }
[AllowAnonymous]
    [DisableCache]
    public ActionResult Login(string returnUrl ="/")
    {
        var path = VirtualPathUtility.ToAbsolute(returnUrl);
        var url = new Uri(Request.Url, path).AbsoluteUri;
        ViewBag.ReturnUrl = url;
        return View();
    }
@section CustomScripts {
 <script type ="text/javascript">
     function OnSuccess() {
         var returnUrl = @Html.Raw(Json.Encode(ViewBag.ReturnUrl))
         window.location = returnUrl;
    }
</script>