如何从 asp.net 核心中的视图重定向到另一个视图

how to redirect to another view from view in asp.net core

我在 ASP.NET 核心 MVC 中为登录视图编写了以下代码:

@using Microsoft.AspNetCore.Http
@inject Microsoft.AspNetCore.Http.IHttpContextAccessor HttpContextAccessor

@{
    ViewData["Title"] = "Login";
    Layout = null;

}
<head>
</head>
<body>
    @if (!string.IsNullOrEmpty(HttpContextAccessor.HttpContext.Session.GetString("User")))
    {
        //redirect to home page
    }
    <div class="main">
        <p class="sign" align="center">Sign in</p>
        <form class="form1" asp-action="Login" asp-controller="User" method="post" enctype="multipart/form-data">
            <input class="un" type="text" align="center" placeholder="Username" name="username" id="username">
            <input class="pass" type="password" align="center" placeholder="Password" name="Password" id="password">
            <input type="submit" class="submit" align="center" value="Sign in" id="signIn">
        </form>
    </div>
    <br />
</body>

如果 Session 包含键 User

的数据

我怎样才能做到这一点?

除了 javascript 别无他法。这是因为视图是当前请求的渲染步骤,你不能 return 重定向操作。这也不是 MVC 概念的好逻辑。

与javascript:

@if (!string.IsNullOrEmpty(HttpContextAccessor.HttpContext.Session.GetString("User")))
{
    //redirect to home page
    <script type="text/javascript">
    window.location.href = "@Url.Action("Index","HomeController")";
    </script>
}

但我建议您在登录控制器中实现它。在 returning 操作结果之前,检查会话中是否存在 User,然后在需要时重定向。