razor - 使用 MapWebPageRoute 映射路由时使用通配符

标签 razor webmatrix asp.net-webpages

在 ASP.NET 网页项目(不是 Web 窗体,不是 MVC)中,我使用的是 Mike Brind 的 More Flexible Routing For ASP.NET Web Pages .

我想创建一条路线,它可以拾取任意数量的路线元素,但以特定单词结尾,例如:

  • mydomain.com/route1/word
  • mydomain.com/route1/route2/word
  • mydomain.com/route1/route2/route3/word
  • ...等等

我尝试在映射路线时使用通配符,但这不起作用,例如:

RouteTable.Routes.Ignore("{*routes}/word");

有没有办法映射这些可能性的路线,或者我是否必须为每种可能性创建一条路线,例如:

  • RouteTable.Routes.MapWebPageRoute("{route1}/word", "~/mypage.cshtml");
  • RouteTable.Routes.MapWebPageRoute("{route1}/{route2}/word", "~/mypage.cshtml");
  • RouteTable.Routes.MapWebPageRoute("{route1}/{route2}/{route3}/word", "~/mypage.cshtml");
  • ...等等

最佳答案

我最终找到了解决这个问题的方法。

RouteTable.Routes.MapWebPageRoute("{*routes}",
    "~/mypage.cshtml",
    constraints: new { routes = @".*(/word)" });

所以使用约束就是答案。

关于razor - 使用 MapWebPageRoute 映射路由时使用通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41132761/

相关文章:

asp.net-mvc - 在只读文本框 mvc4 razor 中禁用返回上一页的退格键

mysql - WebMatrix + MySQL 链接

c# - Asp.Net 如何在查询中使用 'IN' 子句传递参数以优化搜索

.net - 检测到冲突的ASP.NET Web页版本:指定的版本是 “1.0.0.0”,但是bin中的版本是ASP.MET MVC 3中的 “2.0.0.0”

c# - 在 ASP.NET Web 应用程序中禁用 Razors 默认 .cshtml 处理程序

来自 base64 的 C# Asp.net RazorPdf/iTextSharp 图像

javascript - MVC3 Razor - 带有嵌套服务器 ifs 的 Javascript 语句

jquery - 如果条件为假,如何防止 HTML 表单被提交?

datetime - 在 Webmatrix 3 中将日期时间值插入 SQL Server CE

c# - 使用 Pure Razor 时的动态 Web 控件