Asp.net Core,使用Ajax从局部视图重定向到另一个视图?

时间:2018-08-11 13:08:21

标签: asp.net-core asp.net-core-mvc partial-views ajaxform

在Asp.net core 2.0中,我有一个Partial view,其中包含一个form ajax

您可以看到名为Partial View的{​​{1}}

_loginPartial

当我向@model partialView.Models.LoginViewModel <div id="login"> <form asp-controller="Account" asp-action="Login" id="frmLogin" data-ajax="true" data-ajax-method="POST" data-ajax-update="#frmLogin" data-ajax-mode="Replace"> <div id="login"> <div class="form-group"> <input asp-for="UserName" class="form-control" /> <span asp-validation-for="UserName"></span> </div> <div class="form-group"> <input asp-for="Password" class="form-control" /> <span asp-validation-for="UserName"></span> </div> <div class="form-group pull-left "> <button type="submit" class="btn btn-success">Submit</button> </div> </div> </form> 提交表单时,一切正常,但是登录后我想重定向到另一个/Account/Login中的另一个视图

Area

这是 [HttpPost] public async Task<IActionResult> Login(LoginViewModel model) { if (ModelState.IsValid) { //Success Login return Redirect("/AdminPanel/Home/Index"); } else { //if ModelState is invalid } //if UserName Or Password is incorrect return PartialView("_loginpartialView", model); }

LoginViewModel

我也使用此代码在public class LoginViewModel { [Display(Name = "UserName")] [Required(AllowEmptyStrings = false, ErrorMessage = "Please Enter UserName")] public string UserName { get; set; } [Display(Name = "Password")] [Required(AllowEmptyStrings = false, ErrorMessage = "Please Enter Password")] [DataType(DataType.Password)] public string Password { get; set; } } 中显示Partial View

index

但是有一个问题。成功登录后,将新视图替换为 @Html.Partial("_loginpartialView") 。换句话说,它不会导航到Partial view,而新的/AdminPanel/Home/Index被替换为View,我该如何导航到其中的另一个视图这种情况下?

1 个答案:

答案 0 :(得分:0)

在处理AJAX回调时,不能在服务器端进行重定向。这必须在客户端使用Javascript处理。

检查服务器的响应,如果是重定向,则将window.location设置为接收的URL。