ASP.Net MVC Route проблема - PullRequest
       29

ASP.Net MVC Route проблема

1 голос
/ 29 марта 2011

У меня есть область MyArea, и она зарегистрирована так:

context.MapRoute(null, "MyArea", new { controller = "MyAreaController", action = "Index" });

//Properties
context.MapRoute(null, "MyArea/properties", new { controller = "Property", action = "Index" });
context.MapRoute(null, "MyArea/properties/edit/{propertyId}", new { controller = "Property", action = "Property" });

//Units
context.MapRoute(null, "MyArea/properties/edit/{propertyId}/units/{unitId}", new { action = "Unit", propertyId = 1, unitId = 1 });

Должно работать, что одно свойство имеет много единиц, поэтому я хотел бы, чтобы мой URL выглядел примерно так:

http://localhost:50182/myarea/properties/edit/4/units/1

Код, который я использую для Html.ActionLink, выглядит следующим образом:

@Html.ActionLink("Add new Unit", "Unit", "Unit", new { propertyId = 1, unitId = 1 })

У меня есть контроллер юнитов с действием под названием юнит. Пожалуйста, помогите, чего мне не хватает?

Спасибо !!

1 Ответ

1 голос
/ 29 марта 2011

Вы говорите: «У меня есть контроллер юнитов с действием под названием юнит. Пожалуйста, помогите, чего мне не хватает?»

, и ваше отображение маршрута в настоящее время ...

 context.MapRoute(null, "MyArea/properties/edit/{propertyId}/units/{unitId}", new { action = "Unit", propertyId = 1, unitId = 1 });

Как вы ожидаете, что MVC узнает, какой контроллер использовать для этого маршрута?Вам необходимо указать controller = "Unit"

Обновление

Переключить порядок

   context.MapRoute(null, "MyArea/properties/edit/{propertyId}", new { controller = "Property", action = "Property" });

   //Units
   context.MapRoute(null, "MyArea/properties/edit/{propertyId}/units/{unitId}", new { action = "Unit", propertyId = 1, unitId = 1 });

при регистрации вашего маршрута.В противном случае то, что должно отображаться на второй маршрут, будет перехвачено первым.

...