asp.net mvc action result and count question
问题描述:
我正在开发基于插件的体系结构。它是一种社交网站。 对于一个用户,我可以有图片,博客,视频。但它们全都来自模块。 因此,当您访问用户个人资料时,您会看到标签,说出图片,视频和其他内容。 我有一个接口asp.net mvc action result and count question
public interface IUserContent
{
UserContent GetContent(long id);
}
public class UserContent
{
public int Count {get;set;}
public string URL {get;set;
public string Text {get;set;
}
因此,如果照片模块实现IUserContent 它看起来像这样
public class UserPhotos : IUserContent
{
public UserContent GetContent(long id)
{
return new UserContent {
Count = SomeRepository.GetPhotosCountByUser(id),
URL = string.format("/photos/byuser/{0}",id) ,
Text ="Photos" };
}
}
该网址与图片控制器的操作方法。
在我的个人资料页,我得到IUserContent
的所有实现var list = GetAllOf(IUserContent);
,并使用foreach循环为用户个人资料页上的标签使它们。
现在,我的问题是,有没有更好的方法来做到这一点。我不想使用URL作为字符串。 或任何更好的做法来实现它。
问候
成员Parminder
答
是。
替换URL = string.format("/photos/byuser/{0}",id)
有:
URL = Url.Action("ByUser", "Photo", new { id })
如果你想生成一个URL,由此你的动作叫ByUser
和接受一个id
作为参数,您的控制器被称为PhotoController
;或使用:
URL = Url.RouteUrl("PhotosByUser", new { id })
如果你想生成您的网址从路线派生叫PhotosByUser
。
请参阅: -
- http://msdn.microsoft.com/en-us/library/dd460348.aspx和;
- http://msdn.microsoft.com/en-us/library/dd505215.aspx
如需进一步信息:)