路由中的MVC动态动作

时间:2012-02-07 14:20:52

标签: asp.net-mvc asp.net-mvc-routing

是否可以在MVC中定义一个基于部分路由动态解决操作的路由?

例如:

`/products/create/widget`

将解析为ProductsController.CreateWidget(Widget);

我希望路线是动态的:

routes.MapRoute(
    "Create",
    "/products/create/{productType}",
    new { controller = "Products", action = "Create{productType}" }
);

我需要有多个创建操作,这些操作包含不同的模型类型,但我不想在每次添加新路由时添加新路由。如果不将该名称附加到操作,我会得到一个模糊的方法错误。有可能这样做吗?

1 个答案:

答案 0 :(得分:1)

我认为您可能需要创建自己的自定义路由对象,该对象派生自RouteBase,您可以根据Url的特定部分分配操作。看一下这个example