2011-09-27 4 views
0

나는 플러그인 기반 아키텍처에서 일하고 있습니다. 소셜 네트워킹 사이트의 종류. 사용자의 경우 사진, 블로그, 동영상을 가질 수 있습니다. 그러나 그들은 모두 모듈에서옵니다. 그래서 사용자 프로필을 방문하면 사진, 비디오 및 기타 사항을 나타내는 탭이 표시됩니다. 사진 모듈 IUserContent 구현하는 경우 는 나는이 URL은 사진 컨트롤러의 동작 방법이asp.net mvc 조치 결과 및 계산 질문

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" }; 

} 
} 

모양을,

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; 

} 

그래서 인터페이스를 가지고있다. 내 프로필 페이지에서

은 내가

var list = GetAllOf(IUserContent); 

IUserContent

의 모든 구현을 얻을 수 및 사용자 프로필 페이지에 탭으로 foreach 루프를 사용하여 렌더링합니다.

이제 내 질문에, 더 좋은 방법이있을 것입니다. 문자열로 URL을 사용하고 싶지 않습니다. 또는이를 달성하기위한 더 좋은 방법.

감사

Parminder

답변

1

예.

URL = string.format("/photos/byuser/{0}",id) 교체 :

URL = Url.Action("ByUser", "Photo", new { id }) 

당신이 당신의 행동이 ByUser에게 전화를 인수로 id를 받아 컨트롤러가 PhotoController라고시킨다 URL을 생성하고자하는 경우; 또는 사용 :

URL = Url.RouteUrl("PhotosByUser", new { id }) 

당신이 당신의 URL이 경로에서 파생 생성하고자하는 경우

PhotosByUser을했다.

참조 : -