2011-09-27 94 views
0

我正在開發基於插件的體系結構。它是一種社交網站。 對於一個用戶,我可以有圖片,博客,視頻。但它們全都來自模塊。 因此,當您訪問用戶個人資料時,您會看到標籤,說出圖片,視頻和其他內容。 我有一個接口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

回答

1

是。

替換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

請參閱: -

如需進一步信息:)