我很想知道人们如何处理以下情况。Asp.Net MVC路由 - 处理具有相同签名的多条路由?
假设我们有一个数据字段,并且每个数据字段可以有无限数量的DataValues
我们有2个控制器来处理这些对象
- 的操纵DataFieldController
- DataValueContoller
现在,如果我们需要添加一个新的DataValue,我们需要知道CustomDataField的ID。以下URL将被使用,
/CustomDataValue/Add/1
1 =数据字段ID
然而,因为ASp.Net MVC发动机结合参数名称的模型(即,在下面的情况下,我的DatValeu对象将具有它的ID被替换,当我实际尝试通过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 /添加/ {} DataFieldID
- /DataValue /编辑/ {ID}
- /DataValue /列表/ {} DataFieldID
我必须添加3条路线?
我编辑了我的答案。我希望它有帮助。我将不会在很长一段时间。如果它不能解决问题,您可以重新提出问题。 – 2010-08-11 21:47:02