显示asp.net mvc中的对象列表

时间:2009-05-07 05:29:35

标签: asp.net asp.net-mvc

我是MVC的新手。我正在asp.net MVC中开发一个Web应用程序。在注册用户重定向到ProfileView.aspx页面后,我有一个用户可以注册的表单。直到这里一切都很好。

现在我想在他的个人资料下显示该用户发布的文章标题。 现在我使用以下代码:

public ActionResult ProfileView(int id)
{

Profile profile = profileRepository.GetProfileByID(id);

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

return View("ProfileView", profile);

}

感谢您提前帮助 Baljit Grewal

2 个答案:

答案 0 :(得分:1)

我可以想到两个选择:

使用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(对象映射器的对象)。

答案 1 :(得分:0)

您希望您的页面继承自ViewPage,然后您可以在.aspx标记内使用您的模型,如