C# ASP.NET核心MVC重定向:视图重复和嵌套
我最近偶然发现了下面的代码,以便在使用ASP.NET Core MVC开发的旧版应用程序出现错误时重定向:C# ASP.NET核心MVC重定向:视图重复和嵌套,c#,asp.net-mvc,asp.net-core-mvc,C#,Asp.net Mvc,Asp.net Core Mvc,我最近偶然发现了下面的代码,以便在使用ASP.NET Core MVC开发的旧版应用程序出现错误时重定向: app.UseStatusCodePages(异步上下文=>{ var response=context.HttpContext.response; 如果(response.StatusCode==(int)HttpStatusCode.Unauthorized|| response.StatusCode==(int)HttpStatusCode.NotFound|| response.S
app.UseStatusCodePages(异步上下文=>{
var response=context.HttpContext.response;
如果(response.StatusCode==(int)HttpStatusCode.Unauthorized||
response.StatusCode==(int)HttpStatusCode.NotFound||
response.StatusCode==(int)HttpStatusCode.Forbidden)
重定向(“/Account/Login”);
});
该操作位于下面的AccountController.cs
中:
[授权]
公共类AccountController:BaseController
{
公共账户控制员(
用户管理器
[编辑]
要给出正在发生的事情的要点:
什么意思登录视图,而不是在_mainLayout.cshtml中只显示一次Login.cshtml。它出现两次。
也许您可以显示当前视图screenshot@XingZou只是添加了一张图片来解释发生了什么。不能把实际的截图放在这里,因为它有公司版权。我想你应该怀疑一下e检查\u mainLayout
是否为根布局,或者是否有任何导致递归代码的逻辑。
@{
Layout = "_mainLayout";
}
@using MySecretProject.Core.App_LocalResources
@using Microsoft.AspNetCore.Mvc.Rendering
@model MySecretProject.Core.Models.Account.LoginViewModel
@using Microsoft.AspNetCore.Mvc.Localization
@inject IViewLocalizer Localizer
@{
ViewBag.Title = MySecretProject.Core.App_LocalResources.Views.Account.Login.Account_Login_Title;
}
@using (Html.BeginForm("Login", "Account", new { ViewBag.ReturnUrl }, FormMethod.Post, true, new { role = "form", @class = "form-horizontal contentPane2 contentPane2TopMargin" }))
{
@Html.AntiForgeryToken()
<div class="tab" style="width: 100%">
<div id="TopHeader" class="documentTabHeaderTop"> </div>
<div class="container-fluid documentTitleHeader text-center documentTabHeaderTd-active">
<div>Sign in</div>
<div class="col-xs-12 col-sm-12 col-lg-12 headImage">@Html.ValidationSummary(true)</div>
</div>
</div>
<div class="form-group has-feedback">
<div class="col-lg-10 col-md-10 col-sm-10 col-xs-10 col-lg-offset-1 col-md-offset-1 col-sm-offset-1 col-xs-offset-1">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-envelope"></i></span>
@Html.TextBoxFor(m => m.Email, new {@class = "form-control", @placeholder = "Email", aria_describedby = "EMailStatus"})
@Html.ValidationMessageFor(m => m.Email, null, new { @class = "sr-only", id = "EMailStatus" })
</div>
</div>
</div>
<div class="form-group has-feedback">
<div class="col-lg-10 col-md-10 col-sm-10 col-xs-10 col-lg-offset-1 col-md-offset-1 col-sm-offset-1 col-xs-offset-1">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span>
@Html.PasswordFor(m => m.Password, new {@class = "form-control", @placeholder = Resource.Password, aria_describedby = "PasswordBlock"})
@Html.ValidationMessageFor(m => m.Password, null, new {@class = "sr-only", id = "PasswordBlock"})
</div>
</div>
</div>
<div class="form-group">
<div class="text-center">
<div>
<input type="submit" id="ContinueButton" value="@Resource.Continue.ToUpper()" class="buttonItem buttonItem-valid"/>
</div>
</div>
</div>
<div class="form-group">
</div>
<div class="form-group">
<div class="text-center">
@Html.ActionLink(Resource.PasswordForgotten, "ForgotPassword", "Account", string.Empty, new { @style = "text-decoration: none;"})
</div>
</div>
}