Не найдены параметры настраиваемого профиля ASP .NET MVC - PullRequest
1 голос
/ 08 июля 2011

В настоящее время я использую собственный профиль в своем приложении ASP .NET MVC.При создании пользователей и настройке свойств профиля все работает отлично.Проблема, с которой я сталкиваюсь, заключается в том, что при редактировании пользователя я продолжаю получать , в настройках свойства 'FirstName' не найдено error.

Вот код, который я использую, и из моегопонимание того, что оно должно работать нормально:

Класс профиля пользователя

public class UserProfile : ProfileBase
{
    [SettingsAllowAnonymous(false)]
    public string FirstName
    {
        get { return base["FirstName"] as string; }
        set { base["FirstName"] = value; }
    }

    [SettingsAllowAnonymous(false)]
    public string LastName
    {
        get { return base["LastName"] as string; }
        set { base["LastName"] = value; }
    }

    public static UserProfile GetUserProfile()
    {
        return Create(Membership.GetUser().UserName) as UserProfile;
    }

    public static UserProfile GetUserProfile(string username)
    {
        return Create(username) as UserProfile;
    }
}

Web.config

<membership>
  <providers>
    <clear/>
    <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
         enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
         maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
         applicationName="/" />
  </providers>
</membership>

<profile inherits="MissionManager.Models.UserProfile">
  <providers>
    <clear/>
    <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
  </providers>
</profile>

Код вызова - обратите внимание, что еще до того, как я нажму этот метод, ASP.NET сталкивается с ошибкой, упомянутой выше.

   [HttpPost]
    public ActionResult Edit(UserModel model)
    {
        try
        {
            MembershipService.UpdateUser(User.Identity.Name, model);
            return RedirectToAction("Index");
        }
        catch
        {
            return View();
        }
    }

1 Ответ

1 голос
/ 08 июля 2011

У меня есть нечто подобное, что работает.Различия:

public string FirstName
{
    get { return this["FirstName"] as string; }
    set { this["FirstName"] = value; }
}

public string LastName
{
    get { return this["LastName"] as string; }
    set { this["LastName"] = value; }
}

У меня нет атрибутов в пользовательских свойствах, и я использую this instread из base

HTH

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...