【发布时间】:2020-03-10 17:55:40
【问题描述】:
我的网站中有几个以“过滤器...”开头的操作,我的表单使用这些操作来更新部分视图。
我想轻松地路由它们,而不必匹配它们中的每一个。我尝试了一些正则表达式,但没有得到任何结果。
例如:
data/filterbydate -> should be Controller: Data - Action: filterbydate
data/filterbyproject -> should be Controller: Data - Action: filterbyproject
data/filterbyname -> should be Controller: Data - Action: filterbyname
...
事实上,如果我的 RouteConfig 底部没有以下规则,我真的不需要特定的路由
url: "Data/{nodeAlias}"
这迫使我为数据控制器中的每个操作实现路由。
我尝试过url: "Data/Filter{*type}" 或:
route = routes.MapRoute(
name: "DataWithAlias",
url: "Data/{nodeAlias}",
defaults: new { action = "Detail", controller = "Content", nodeAlias = "" },
constraints: new { nodeAlias = "^(?!filter$).*$"}
);
但没有成功...
我正在搜索:
- 一种将我的所有过滤器操作映射到一条路线的方法
- 或者一种从 url 中排除的方法:“Data/{nodeAlias}”任何开始 带过滤器*
- 或者一种避免将这些过滤操作路由为的方法 他们的 URL 已经正确构建以针对正确的 控制器/动作
【问题讨论】:
标签: asp.net-mvc routes