2013-03-20 29 views
1

是否有一種方式在ASP.NET MVC生成一個URL與Html.helper 沒有指定的行動(因此路由到默認行動) ?ASP.NET MVC:Html助手生成url沒有指定動作

基本上我想要的輸出{語言} /控制器,即網址:〜/ EN /主頁

但每個HTML輔助在MVC似乎需要指定特定的控制器動作,甚至

<a href="@Url.Action(null, @Resources.Home">Click here</a> 

輸出EN /主頁/ PartialViewName,而不是僅僅EN /​​主頁....(我生成它的局部視圖)

UPDATE 1:

顯然, 「索引」操作不會在生成的URL顯示出來,即:

@Html.ActionLink("Click here", "Index", @Resources.Home) 

輸出/ EN /主頁

,但如果你想添加的參數,這個問題仍然是相同的不幸。以下輸出正確的URL的非(即EN /主頁/ 3)

@Html.ActionLink("Click here", "Index", @Resources.Home, new { id = home.Id }, null) 

<a href="@Url.Action(null, @Resources.Home)/@home.Id">Click here</a> 

更新2:

解決它現在這個樣子:

@Html.ActionLink("Click here", "Index", string.Format(Resources.Home + "/" + home.Id)) 

但不能這個問題的唯一/正確的解決方案?

回答

0

如何爲家/ {id}添加路線如下?

 routes.MapRoute(
      name: "HomeID", 
      url: "home/{id}", 
      defaults: new { controller = "Home", action = "Index", id = 0 }); 

然後,當你創建URL,它會給你的/ home/32(如果用32號產生的)

0

如何創建自己的助手,這將產生你想要的網址。它甚至可以簡單地調用URL.Action的mvc實現,然後用你想要的替換動作名稱。