【发布时间】:2011-02-15 23:01:57
【问题描述】:
我使用默认路由定义:
{controller}/{action}/{id}
在哪里id = UrlParameter.Optional。据我了解,这意味着当 id 不是 URL 的一部分时,此路由值将不存在于 RouteValues 字典中。
所以这似乎也完全有可能(都是 GET):
public ActionResult Index() { ... } // handle URLs: controller/action
public ActionResult Index(int id) { ... } // handle URLs: controller/action/id
当id 缺失时,第一个动作将被执行,但当id 存在时,第二个动作将被执行。很好,但是它不起作用。它无法解析操作。
我怎样才能做到这一点?
我正在考虑编写一个自定义操作方法选择器属性,例如:
[RequiresRouteValue(string valueName)]
这将使使用这种动作方法成为可能。但这是唯一的方法吗?
有内置的东西我可以坚持吗?
【问题讨论】:
标签: asp.net-mvc-2 action routevalues