Отображение списка объектов в asp.net mvc - PullRequest
0 голосов
/ 07 мая 2009

Я новичок в MVC. Я занимаюсь разработкой веб-приложения в asp.net MVC. У меня есть форма, с помощью которой пользователи могут зарегистрироваться, после регистрации пользователь перенаправляется на страницу ProfileView.aspx. пока здесь все в порядке.

Теперь я хочу показать заголовки статей, опубликованные этим пользователем прямо под его профилем. Сейчас я использую следующий код:

public ActionResult ProfileView(int id)
{

Profile profile = profileRepository.GetProfileByID(id);

var articles = articlesRepository.FindArticlesByUserID(id).ToList();

return View("ProfileView", profile);

}

Спасибо за помощь заранее
Балжит Гревал

Ответы [ 2 ]

1 голос
/ 07 мая 2009

Я могу придумать два варианта:

Используйте словарь ViewData для хранения статей.

public ActionResult ProfileView(int id)
{

Profile profile = profileRepository.GetProfileByID(id);  
var articles = articlesRepository.FindArticlesByUserID(id).ToList();
ViewData["Articles"] = articles;
return View("ProfileView", profile);
}

Или, если вы хотите избежать использования ViewData, создайте ViewModel. ViewModel является своего рода объектом транспорта данных. Вы можете создать класс ProfileViewModel следующим образом:

public class ProfileViewModel
{
     public Profile Profile{ get; set; }
     public IList<Article> Articles { get; set; }
}

или просто включите свойства профиля, которые вы используете в своем представлении, это облегчит привязку, но вам придется скопировать значения из вашей модели в ViewModel в вашем контроллере .:

public class ProfileViewModel
{
     public int Id{ get; set; }
     public string Name { get; set; }
     .......
     public IList<Article> Articles { get; set; }
}

Если вы выберете этот последний вариант, взгляните на AutoMapper (сопоставление объектов с объектами).

0 голосов
/ 07 мая 2009

вы хотите, чтобы ваша страница наследовалась от ViewPage, а затем вы можете использовать свою модель внутри разметки .aspx, как

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