Asp.net mvc 由
我在我的网站上有几个以“筛选…”开头的操作,我的表单使用这些操作来更新部分视图 我想简单地路由它们,而不必匹配每一个。我尝试了一些正则表达式,但没有得到任何结果 例如:Asp.net mvc 由,asp.net-mvc,routes,Asp.net Mvc,Routes,我在我的网站上有几个以“筛选…”开头的操作,我的表单使用这些操作来更新部分视图 我想简单地路由它们,而不必匹配每一个。我尝试了一些正则表达式,但没有得到任何结果 例如: data/filterbydate -> should be Controller: Data - Action: filterbydate data/filterbyproject -> should be Controller: Data - Action: filterbyproject
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已经正确构建,以正确的 控制员/行动
route = routes.MapRoute(
name: "DataFilter",
url: "Data/{action}",
defaults: new { action = "Index", controller = "Data"},
constraints: new {action = "^filter.*|^GetPDF.*" }
);
// A route value determines the culture of the current thread
route.RouteHandler = new MultiCultureMvcRouteHandler();