我正在学习MVC 5,最近我的导师正在解释有关设置自定义路线的信息。在我们的自定义路线中,我们有url:movies/BySelected/{year}/{month}
。
我们需要年份为4位数,月份为2位数。
因此他添加了一些代码:@"\d{4}",@"\d{2}"
那是什么意思?
答案 0 :(得分:1)
就像评论说的那样,这是添加路线约束的一种方式。但这似乎不是正确的选择,除非您计划有两个单独的动作来处理电影/ byselected
例如:
def _str(self):
typ = type(self).__name__
vars = {name: value for name, value in inspect.getmembers(self) if not name.startswith('_')}
return(f"Instance of {typ}, vars = {vars}")
和movies/byselected/{MovieName}
以下是相关的Microsoft文档的警告: ``` 警告
避免使用约束进行输入验证,因为这样做意味着无效输入将导致404(未找到),而不是带有适当错误消息的400。路线约束应用于消除相似路线之间的歧义,而不是验证特定路线的输入。 ```
此外-约束的语法更好:
在MVC5中,您可以使用属性路由,然后可以使用内联约束语法,但是在此时,您可能应该看一下MVC核心。您可以指定:
movies/byselected/{year}/{month}