我正在寻找一个RegEx模式来验证网址中带有CSV参数的 属性路径 。
有效的URL看起来像这样(0到n个元素的列表):
http://site/prefix/list/a,b1,c123[,...]
属性路线:
Route("List/{Items:alpha:regex(<pattern>)")
我对RegEx没有多少经验,对模式没有太多运气。
答案 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>