为 ASP.NET MVC 3 中的 MapRoute 指定特殊情况处理程序
我在 Global.asax 中定义了以下路由:
routes.MapRoute(
"IncidentActionWithId", // Route name
"Incidents/{companyId}/{action}/{id}", // URL with parameters
new { controller = "Incidents" } // Parameter defaults
);
我有一种特殊的请求情况,如下所示:
/Incidents/SuperCompany/SearchPeople/Ko
在这种情况下,操作确实应该映射到 SearchPeople
操作,comapnyId
到此操作的参数,但仅当操作为 SearchPeople 时,Ko
不应映射到操作的 id 参数,而应映射到 searchTerm
。
我的操作声明是:
[HttpGet]
public ActionResult SearchPeople(string companyId, string searchTerm)
如何实现将 Ko
映射到我的操作方法中的 searchTerm
参数?
I have the following Route defined in Global.asax:
routes.MapRoute(
"IncidentActionWithId", // Route name
"Incidents/{companyId}/{action}/{id}", // URL with parameters
new { controller = "Incidents" } // Parameter defaults
);
I have a special case of request, like this one:
/Incidents/SuperCompany/SearchPeople/Ko
In this case, action should indeed map to SearchPeople
action, comapnyId
to this action's parameter, but only when action is SearchPeople, the Ko
should not be mapped to an id parameter of the action, but to searchTerm
.
My action declaration is:
[HttpGet]
public ActionResult SearchPeople(string companyId, string searchTerm)
How can I achieve Ko
to be mapped to searchTerm
parameter in my action method?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以定义两种路由,一种使用
id
,另一种使用searchTerm
if id 应该是数字(或者您可以指定正则表达式 约束)并且与searchTerm有不同的模式。请参阅此处如何定义约束。
示例:
注意
首先定义有约束的。
You can define two routes, one with
id
and one withsearchTerm
if the id is supposed to be numeric (or you can specify regex constratints) and have different pattern to searchTerm.See here how you can define constraints.
Example:
NOTE
Define the one with constraint first.