2013-03-20 2 views
1

Есть ли способ в ASP.NET MVC генерировать URL-адрес с Html.helper без, определяя действие (и тем самым перенаправляя его на действие по умолчанию) ?ASP.NET MVC: Html помощник для генерации URL без указания действия

В основном я хочу URL, который выводит {языки}/контроллер, то есть: ~/EN/Главная

Но каждый HTML-помощник в MVC, кажется, требует, чтобы определить конкретные действия контроллера, даже

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

выходы EN/Главная/PartialViewName вместо просто EN/Home .... (я ее производству на частичный вид)

UPDATE 1:

по-видимому, "Index" действие не проявляется в сгенерированном 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> 

UPDATE 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, это даст вам/дом/32 (если генерироваться с идентификатором 32)

0

Как о создании собственного помощника, который будет генерировать URL вы хотите , Это может быть даже простой вызов реализации mvc URL.Action, а затем замена имени действия на то, что вы хотите.

Смежные вопросы