В представлении в ASP.NET MVC я могу получить доступ к профилю и элементам профиля следующим образом:
<%= Profile.Name %> - <%= Profile.Karma %>
но как мне заполнить переменную Profile? Вроде бы в HttpContext.Current.Profile. Я написал собственный класс Profile с методом CurrentUser, который выглядит следующим образом:
static public Profile CurrentUser {
get {
return (Profile) (ProfileBase.Create(Membership.GetUser().UserName));
}
}
В моем файле Web.config указан этот класс:
<profile inherits="MyProject.Models.Profile" defaultProvider="AspNetSqlProfileProvider" enabled="true">
<providers>
<clear />
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ApplicationServices" applicationName="/" />
</providers>
</profile>
Это:
var p = CurrentUser.Profile
успешно дает мне профиль, но я не могу установить его следующим образом:
HttpContext.Profile = CurrentUser.Profile;
потому что HttpContext.Profile только для чтения. Я получаю ошибку:
Ошибка 18 Свойство или индексатор 'System.Web.HttpContextBase.Profile' не могут быть назначены - это только для чтения C: ... \ Controller.cs 26 17 MyProject
Кроме того, мне нужно, чтобы профиль был назначен для каждого просмотра, чтобы имя вошедшего в систему пользователя могло отображаться в правом верхнем углу обычным способом. Как мне это сделать?