用于验证属性路由正则表达式约束中不带引号的字母数字 csv 列表的正则表达式

标签 regex asp.net-mvc-5 asp.net-web-api2 asp.net-mvc-5.1

我正在寻找一个正则表达式模式来验证 URL 中带有 CSV 参数的属性路由

有效的 URL 如下所示(0 到 n 个元素的列表):

http://site/prefix/list/a,b1,c123[,...]

属性路由:

Route("List/{Items:alpha:regex(<pattern>)")

我在正则表达式方面没有太多经验,并且对该模式也没有太多运气。

最佳答案

我认为这是验证操作内参数的更好方法,而不是通过属性路由规则,因为路由规则不是一个有用的验证器,它不会给出任何当用户输入不匹配的数据时向用户提供反馈,相反,他们会收到 HTTP 404。但如果这确实是您想要的,这里有一个适合我的示例:

使用http://localhost/list/movie1,电影2,电影3进行测试

    [Route(@"list/{movieCsv:regex(^[A-Za-z0-9, ]+$)}")]
    public ActionResult ListCsv(string movieCsv)
    {
       var movies = movieCsv.Split(',');
       return View(movies);
    }

View (ListCsv.cshtml):

   <h2>Movies</h2>
   <ul>
   @foreach (var movie in Model)
   {
     <li>@movie</li>
   }
   </ul>

关于用于验证属性路由正则表达式约束中不带引号的字母数字 csv 列表的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23662224/

相关文章:

javascript - 正则表达式,我怎么说,匹配除一个词以外的所有内容?

c# - cs7003 意外使用未绑定(bind)的通用名称

未在部分 View 上定义 Javascript 函数

jquery - 如何从 mvc 中的单个 View 插入/更新/删除记录

c# - Angular/Web API 2 使用 StreamContent 或 ByteArrayContent 返回无效或损坏的文件

asp.net - <access sslFlags ="Ssl.SslRequireCer"> 在 .net 核心

javascript - 正则表达式与句子中的分号匹配

python - 从一行中删除所有逗号字符,除非行以 # 使用 python regex 开头

javascript - 表情符号输入正则表达式搞砸了

asp.net-mvc-5 - 如何在 MVC 5 Web 应用程序和 Web API 2 应用程序之间共享访问 token