1

有人告诉我,我可以在任何 Controller 中创建 ActionResult 并返回带有 User.Identity.Name 的 PartialView。然后我可以在我的 MasterPage 中 RenderPartialView 以显示用户名。我试图实现它,但不断收到系统没有看到我的 PartialView 的错误。有人可以请详细解释如何实施吗?非常感谢

不幸的是,这个项目的结构方式,Logon 不是从 Master 中呈现的。它从 WebConfig 调用并在 AccountController 中进行身份验证。

<authentication mode="Forms"> 
      <forms loginUrl="~/Account" timeout="2880"/> 
</authentication>
4

2 回答 2

6

您已经在基本模板中有一个工作示例,当您创建一个新的 MVC 项目时,VS 会为您弹出......在 site.master 中,您有一个 Html.RenderPartial("LogOnUserControl") 呈现 LogOnUserControl 部分视图(位于Views/Shared 文件夹)...如果用户通过身份验证,该控件将显示 User.Identity.Name...

除非这不是你的意思,在这种情况下,我认为我们需要对你的问题进行更多解释:)

于 2009-12-08T22:22:04.813 回答
4

当您创建一个新的 MVC 项目时,如果您查看 LogOnUserControl.ascx 文件,您会注意到这行代码在 Request.IsAuthenticated 为 true 时执行...

<%= Html.Encode(Page.User.Identity.Name) %>

从 Views\Shared 目录中的 Site.Master 中,您将看到 LogOnUserControl 呈现到页面,如下所示:

<div id="logindisplay">
    <% Html.RenderPartial("LogOnUserControl"); %>
</div> 
于 2009-12-08T22:24:28.270 回答