2015-09-10 2 views
-1

Мне нужна помощь с поддорожком в asp.net mvc. Мне нужен этот маршрутПодход в @ Url.Action

Home/Index/6/Person/Index/8 

В моей RouteConfig я быть_наст этот

routes.MapRoute(
    name: "Prueba", 
    url: "Home/Index/{id}/Person/{action}/{personId}", 
    defaults: new { controller = "Person", action = "Index", PersonId = UrlParameter.Optional } 
); 

Если я ставлю этот маршрут Home/Index/6/Person/Index/8 в URL браузер работает, но мне нужна ссылка

Я не знаю, как создал этот маршрут с @Url.Action(Action, Controller, new{ id=Value })

+0

Синтаксис: @ Url.Action («Название действия», «ControllerName», новый {имяПараметра = "parameterValue"}) В вашем случае: @ Url.Action ("Index", "Person", new {id = "6", personId = "8"}) –

ответ

0

Вы можете использовать @Url.Action("Index","Person",new {id="6",personId="8"})

Это приведет к созданию требуемой строки, однако она выберет первый маршрут, соответствующий критериям.

Синтаксис: @Url.Action("Action Name","ControllerName",new {parameterName="parameterValue"})

Ссылка:

https://msdn.microsoft.com/en-us/library/system.web.mvc.urlhelper.action(v=vs.118).aspx#M:System.Web.Mvc.UrlHelper.Action%28System.String,System.String,System.Web.Routing.RouteValueDictionary%29

1

Вы можете использовать Url.RouteUrl или Html.RouteLink методы

Для примера

@Html.RouteLink("Click me", "Prueba", new { id = 1, personId = 3 }) 

в d

@Url.RouteUrl("Prueba", new { id = 1, personId = 3 }) 

Если вы хотите указать другой способ действий в маршруте, то это было бы, например, new { id = 1, personId = 3, action = "Edit" }

+0

Обратите внимание, что аргумент 'personId' не требуется для соответствия маршруту. – NightOwl888

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