Как отобразить информацию о пользовательском профиле с помощью шаблонов VS2013 MVC5?

Существует несколько руководств по новым шаблонам MVC5, в которых показано, как легко добавлять новые поля в информацию профиля пользователя. Вот пара, которую я просмотрела:

http://www.asp.net/mvc/tutorials/mvc-5/create-an-aspnet-mvc-5-app-with-facebook-and-google-oauth2-and-openid-sign-on

http://blogs.msdn.com/b/webdev/archive/2013/10/16/настройка-профиля-информации-в-asp-net-identity-in-vs-2013-templates.aspx

Моя вторая ссылка — единственный учебник, в котором даже упоминается отображение информации обратно, но этому руководству трудно следовать, и в этой части так мало информации.

Я хочу отображать дату рождения пользователя на странице «Управление учетной записью» и, возможно, разрешить ее редактирование. Я пробовал следующее в AccountControllers.cs:[HttpPost]Manage():

if (ModelState.IsValid)
{
    var currentUserID = User.Identity.GetUserId();
    var manager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));
    var currentUser = manager.FindById(User.Identity.GetUserId());
    ViewData.Add("userName", currentUser.UserName);
    ViewData.Add("BirthDate", currentUser.BirthDate);
}

Используя этот код, элементы ViewBag, которые я установил, пусты, когда я отображаю их в Manage.cshtml с помощью

<p>Birthdate is @ViewBag.BirthDate</p>
<p>ReturnURL is @ViewBag.ReturnUrl</p>
<p>UserName is @ViewBag.userName</p>

Как показать информацию, хранящуюся в базе данных?


person damccull    schedule 26.10.2013    source источник


Ответы (1)


Я легко решил эту проблему, когда понял, что приложение никогда не попадет в версию [HttpPost] метода управления, пока оно не будет отправлено. Я переместил его в метод управления по умолчанию, и код работает нормально.

person damccull    schedule 26.10.2013