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

时间:2014-05-14 18:21:39

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

我正在寻找一个RegEx模式来验证网址中带有CSV参数的 属性路径

有效的URL看起来像这样(0到n个元素的列表):

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

属性路线:

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

我对RegEx没有多少经验,对模式没有太多运气。

1 个答案:

答案 0 :(得分:4)

我认为这是一种更好的方法来验证操作中的参数,而不是通过属性路由规则,因为路由规则不是一个有用的验证器,它不会给任何当用户输入与其不匹配的数据时反馈给用户,而不是他们将获得HTTP 404.但是,如果这确实是你想要的,那么这个例子对我有用:

使用http://localhost/list/movie1,movie 2,movie 3

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

视图(ListCsv.cshtml):

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