0

在我的 MVC4 项目中成功登录后,我在尝试重定向到另一个页面时遇到问题。我修改了 MVC4 模板,使其在主页上显示登录用户名和密码文本框,而不是重定向到另一个登录页面。一旦我成功登录

成功登录后,我想重定向到另一个页面,但我遇到了 2 个问题,具体取决于我选择的方法。

  1. 问题1:它显示我的页面,即一个包含数据网格的页面,作为我在主页上的标题的一部分。

  2. 问题 2:它处理包含带有数据的网格的页面,但随后抛出错误,表明我的模型无效,因为它需要登录模型而不是 griddata 模型。

两者显然行为不正确。成功登录后,我想在主页的右上角显示用户名,这意味着我确实需要使用登录模型,但我希望我的主要部分显示来自其他页面的网格,所以我需要griddata 模型,但我不太明白如何做到这一点。

谢谢。

4

1 回答 1

0

这是一个多部分的答案,但您需要做的是:

  1. 在您的登录页面上,有一个指向您的登录控制器的表单
  2. 在您的帐户控制器中,处理登录操作
  3. 在您的布局页面中,您可以像这样引用当前登录的用户

示例如下:

1) 您的登录页面

@using(Html.BeginForm("Logon", "Account")) {
    @Html.TextBox("username")
    @Html.Password("password")
}

2)您的登录/帐户控制器

public class AccountController : Controller {
    public ActionResult Logon(string username, string password) {
          // login logic here

          // save the username
          Session["Username"] = username;

          // Or you can reference user the user identity
          Session["Username"] = User.Identity.Name;

          // Redirect somewhere when you're done
          return Redirect("LoggedInPage", "Home");
    }
}

3)在你的 _Layout 标题中

@if(HttpContext.User.Identity.IsAuthenticated) {
   @Session["Username"]
   // or
   @HttpContext.User.Identity.Name
} else {
   <div>You should log in!</div>
}
于 2012-12-15T15:49:29.307 回答