3

Я пытаюсь сделать мой URL выглядеть следующим образом:Как использовать ActionLink с RouteValueDictionary?

http://domain.com/controller/action/123/SomeTextForSEO 

Я попытался с помощью действий Link, но добавляет ?company=SomeTextForSEO вместо названия компании после косой черты.

<%: Html.ActionLink("DomainList", "Index", "DomainList", new { id = item.CompanyID, company = item.CompanyDisplayName.Trim() }, new object { })%> 

и теперь я думаю, что нужно использовать RouteValueDictionary, но я не уверен в том, как сделать это в синтаксисе ASP.NET. Может ли кто-нибудь указать мне в правильном направлении? Примеры MSDN недостаточны.

+0

Кстати, вы также можете передать null для последнего параметра в своем вызове ActionLink. Чтобы обеспечить правильное разрешение перегрузки, передайте его как (object) null, хотя –

ответ

3

Если вы идете в Global.asax.cs и добавить новый маршрут, похожий на существующий маршрут по умолчанию с шаблоном

"{controller}/{action}/{id}/{company}" 

Перед умолчанию, вы должны что ссылка будет правильно генерироваться с вашим вызовом ActionLink как есть.

Я по телефону, так что я хотел бы быть более многословным (ограничение маршрут будет хорошей идеей, чтобы предотвратить этот маршрут вмешивалась по умолчанию), но HTC клавиатура не код пользователя;)

+0

получил его. Я опечалил мою global.asa ... это правильный ответ. Когда вы (или кто-то получает шанс, я хотел бы знать, если/когда я должен использовать словарь routevalue и как ... – LamonteCristo

+0

'RouteValueDictionary' используется в некоторых ситуациях, когда у вас уже есть значения в форме словаря, которые вы не можете затем превратитесь в анонимный тип, потому что вы не знаете его содержимое. Это также единственный способ объединить значения маршрута общим способом (например, добавить номер страницы к текущему URL-адресу, который может иметь неизвестное количество других значений маршрута) - это то, что MVC делает повсюду, поскольку он создает ссылки из текущего запроса. В общем, я использую только RouteValueDictionary, когда мне нужно это либо из двух, потому что метод анонимного типа является более кратким. –

1

Похожие обсуждения здесь: How can I create a friendly URL in ASP.NET MVC?

+0

, это обновление, которое помогло исправить мою проблему, однако я до сих пор не знаю, как пользователю actionlink с словарем routevalue с ASP.NET. – LamonteCristo

+0

ActionLink - это MVC. NET конкретный и не существует в простой ASP.NET – msms

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