Создание ASP.Net MVC3 ActionLink с областью - PullRequest
3 голосов
/ 21 марта 2012

ASP.Net MVC3 - это круто, и все, но у меня есть этот вопрос скорее из любопытства, чем из-за проблем программирования. Скажем, у меня есть область под названием «Космос», в которой есть «StarController» с действием «Индекс».

Теперь, если бы мне нужно было создать ссылку на действие, в чем разница между этими двумя утверждениями?

Html.ActionLink("Stars", "Index", "Stars", new { area = "Cosmos" }, null)

и

Html.ActionLink("Stars", "Index", "Cosmos/Stars")

Судя по всему, это одно и то же. Если это действительно делает то же самое, что толку от анонимного типа {area = "Cosmos"}?

1 Ответ

3 голосов
/ 21 марта 2012

Во втором примере вы устанавливаете аргумент controllerName на Cosmos/Stars, что неверно.Контроллер не может быть назван таким образом.Он генерирует правильный результат, потому что помощник просто использует аргумент как есть, но вы предположили, что ваши маршруты будут иметь определенный стиль.В момент изменения определения маршрутизации эта ссылка будет продолжать генерировать ту же разметку, которая может быть неправильной.В первом примере вы больше не полагаетесь на какой-либо жестко заданный шаблон URL.Он всегда будет генерировать правильный URL независимо от того, как настроены ваши маршруты и районы.

...