2012-03-30 2 views
1
MVC

Учитывая это: в index.cshtml:Бритва Url.Action и маршрутизации

a href="@Url.Action("Create", "Request")">Create Request</a> 

global.asax:

routes.MapRoute(
       "Request", 
       "request/{action}", 
       new {controller="Request",action="Create" } 
       ); 

перенаправляет на этот адрес: http://localhost:16997/request. Как я могу сделать это до http://localhost:16997/request/create? Если я просто набираю «create» в URL-адресе, он соответствующим образом отображает содержимое метода create.

ответ

1

Удалить значение действия по умолчанию в вашем определении маршрута:

routes.MapRoute(
    "Request", 
    "request/{action}", 
    new { controller = "Request" } 
); 
+0

Не будет ли это работать, если он просто положил свой маршрут выше этот в Global.asax? Поскольку маршрутизация будет соответствовать первой, она может. – mattytommo

+0

Он будет работать, если он полностью удалит свой маршрут, поскольку он не нужен. Маршрут по умолчанию уже обрабатывает это. И его действие по умолчанию - Index. –

+0

обновил маршрут и перенаправляет его правильно: http: // localhost: 16997/request/create, но в браузере отображается только «Undefined». Весь метод делает это «return Content (« метод создания контроллера внутреннего запроса »); – user1202839

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