查看Phil Haack 的这篇文章。或者这个在 develoq
您可以为您的视图创建一个新的基本页面,该页面将您的 Profile 对象作为属性。
public abstract class ProfileWebViewPage<T> : System.Web.Mvc.WebViewPage
{
public UserProfile Profile { get; set; }
public override void InitHelpers()
{
base.InitHelpers();
//Set your Profile here.
}
}
然后将其设置为 webconfig 中的基本类型(在视图文件夹中):
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="MyProject.ProfileWebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization"/>
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
</system.web.webPages.razor>
然后您可以通过以下方式简单地访问它:
@Profile.FullName
编辑
好的,抱歉,我以为你有这些信息,只是在寻找一种在你的页面上访问它的方法。
您不能(AFAIK)使用 SimpleMembershipProvider 访问自定义配置文件信息。我认为您需要查看自定义 ProfileProvider ( http://dotnetnsqlcorner.blogspot.co.nz/2012/05/implementing-custom-profile-in-aspnet.html ) 或使用 SqlProfileProvider (实施 Profile Provider in ASP.NET MVC )
或者:
您可以只使用 EF 进行数据访问以直接进入配置文件(使用数据库上下文 UserProfile 所在的任何内容:
Profile = (new UsersContext()).UserProfiles.SingleOrDefault(u => u.UserName = User.Identity.Name)