我是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
答案 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标记内使用您的模型,如