2009-09-03 3 views
0

다음을 수행하고 싶습니다..Net MVC : 경로 값을 세션 값에 바인딩하십시오.

사용자는 내 웹 사이트에 자신의 하위 사이트가 있어야합니다. 그래서, 사이트가 나는 세션에서 사용자 이름 값을 저장 한 다음 경로의 사용자 이름 부분에 세션 값을 바인딩 할 처음으로 호출되는

routes.MapRoute(
    "ShopEntered", 
    "{username}/{controller}/{action}/{id}", 
    new { controller = "Home", action = "Index", id = "" } 
); 

: 그 때문에 나는 새로운 경로를 추가 한 Url.Action 또는 Html.ActionLink를 호출 할 때마다 매번 수동으로 설정하지 않아도됩니다.

나는 이것을 어떻게 알 수 있습니까?

답변

0

가장 쉬운 방법은 아마도 자신의 도우미 메서드를 작성하고 Html.ActionLinkUrl.Action 대신이 메서드를 사용하는 것입니다. 예를 들면 :

public static class UserUrlExtensions 
{ 
    // Create whichever overloads you want 
    public static string UserActionLink(this HtmlHelper helper, string linkText, RouteValueCollection routeValues) 
    { 
     // Get whatever value it is you want from the current context 
     routeValues["User"] = helper.ViewContext.HttpContext.Current.User.Identity.Name; 

     return helper.ActionLink(linkText, routeValues); 
    } 
} 

나는 그것을 수정없이 작동을 보장하지 않지만, 당신이 작업을 수행하는 방법의 아이디어를 얻을 ...