Мне интересно знать, как люди справляются со следующей ситуацией.
Предположим, у нас есть DataField, и у каждого DataField может быть неограниченное количество DataValues
У нас есть 2 контроллера для обработки манипуляциииз этих объектов
- DataFieldController
- DataValueContoller
Теперь, если нам когда-либо понадобится добавить новое DataValue, нам нужно знать идентификатор CustomDataField.Будет использоваться следующий URL-адрес:
/CustomDataValue/Add/1
1 = IDField ID
Однако, поскольку движок ASp.Net MVC связывает имя параметра с моделью (например, IE в приведенном ниже примере. МойОбъекту DatValeu будет заменен его идентификатор, когда я на самом деле пытаюсь пройти через FieldID)
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Site", action = "Home", id = UrlParameter.Optional } // Parameter defaults
);
Как мы можем справиться с этим?Выполнение следующего, очевидно, не сработает.
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Site", action = "Home", id = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{fieldid}", // URL with parameters
new { controller = "Site", action = "Home", fieldid = UrlParameter.Optional } // Parameter defaults
);
Я предполагаю, что это обычная проблема, я просто не могу найти очевидное решение в данный момент.Было бы хорошо, если бы подпись отличалась, но обе являются / String / String / Int
=========================
Как могут работать эти маршруты?
- / DataValue / Add / {DataFieldID}
- / DataValue / Edit / {ID}
- / DataValue / List / {DataFieldID}
Должен ли я добавить 3 маршрута?