2010-12-16 2 views
0

Почему:Проблема с маршрутизацией ASP.NET MVC?

<%= Html.ActionLinkForAreas<UsersController>(c => c.User(), "My Details") %> 

Генерирование URL, содержащий этот:

Users/User

Но:

<%= Html.ActionLinkForAreas<BlaController>(c => c.Index(1), "My Bla Di Bla")%> 

URL, как это:

Bla

Вместо этого:

Bla/Индекс

Другими словами, почему это действие Index «проглотил». Имеет ли это отношение к маршрутизации, которая выглядит так:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" }); 

routes.RouteExistingFiles = true; 
routes.IgnoreRoute("Content/{*wildcard}"); 
routes.IgnoreRoute("Scripts/{*wildcard}"); 

routes.MapRoute(
"Default",            // Route name 
"{controller}/{action}/{id}",       // URL with parameters 
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
); 

Или есть еще одна причина? Как я могу изменить это поведение? Благодарю.

С наилучшими пожеланиями,

Christian

ответ

3

Becaues вы указали Index в качестве действия по умолчанию:

routes.MapRoute(
    "Default",            // Route name 
    "{controller}/{action}/{id}",       // URL with parameters 
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
); 

action = "Index" часть. Поскольку это действие по умолчанию, всякий раз, когда вы создаете URL-адреса, часть «Индекс» будет опущена. Это дает вам возможность иметь красивые сжатые URL-адреса. Кстати, это же правило применяется и к самому контроллеру. Если вы перейдете к контроллеру «Домашний», то URL-адрес до будет иметь номер, который позволит вам получить исходный базовый URL-адрес, например «/».

+0

Спасибо. Я спрашиваю об этом, потому что моя сеть mvc contrib поглощает индексный бит. см. также: http://stackoverflow.com/questions/4452031/mvc-contrib-pager - третий комментарий к моему вопросу. Я предполагаю, что одним из вариантов было бы перенаправление на действие индекса и использование некоторых других действий, чем Index для моих actionlinks и т. Д. – cs0815 2010-12-16 15:52:16