asp.net-mvc根据条件重定向到新页面

leo*_*ora 1 asp.net-mvc

我的一个视图中的代码如下所示,如果您已登录,它会显示欢迎通知,如果您未登录,则会显示指向登录页面的链接.

    <%
        if (!Request.IsAuthenticated)
        {
    %>
    <%= Html.ActionLink("Log On", "LogOn", "Account")%>
<%
    }
        else
        {
            %>
             <img src="../images/newspic.gif" width="423" height="194"><br /><br />
<%
        }
%>
Run Code Online (Sandbox Code Playgroud)

我想要的是,如果你没有登录,我希望它自动重定向到登录页面(为什么有额外的步骤)

关于如何从上面这个视图中自动重定向到另一个页面的任何建议.

Dav*_*enn 6

您的视图应仅负责显示您的数据.您的控制器应该处理重定向逻辑.

已为此目的创建了授权属性.将其添加到您的控制器操作方法,如:

public class CustomerController : Controller {

  [Authorize]
  public ActionResult Home() {
    return View("Home");
  }

}
Run Code Online (Sandbox Code Playgroud)

或者,可以将其添加到Controller以应用于所有操作:

[Authorize]
public class CustomerController : Controller {

  public ActionResult Home() {
    return View("Home");
  }

}
Run Code Online (Sandbox Code Playgroud)

然后在你的web.config中设置类似的东西

<authentication mode="Forms">
   <forms loginUrl="~/Login" />
</authentication>
Run Code Online (Sandbox Code Playgroud)

如果用户获得授权,他们将显示"主页"视图.如果他们未获得授权,他们将被重定向到'/ Login'