繁体   English   中英

HttpGet上的MVC验证

[英]MVC Validation on HttpGet

我有一个连接到HttpGet方法的搜索表单

[HttpGet]
public ActionResult Search(Filter filters){
{
   ...
}

我想做的是模式验证,即在HttpPost中完成的方式。 但是,我不想使用HttpPost方法,因为我希望允许用户能够为其搜索结果添加书签。 过滤器是我的dto。

有没有一种方法可以提高HttpGet方法中的验证? 喜欢..

 if (!filters.Name.HasValue)
            {
                this.ModelState.AddModelError("Name", "THis is a required    Field...");

或使用数据注释

public class Filter {
    [Required]
    string Name {get;set;}
...

不知道这是否是正确的方法。 同样,我不确定哪种方法最好。 任何帮助/建议都很好。

是的,这很好。

模型绑定和验证不需要 HTTP方法为POST

尽可能尝试使用数据注释。 他们干净优雅。 如果需要,请创建自己的。

请记住,带数据注释的验证应该很简单; 即检查值是否已填充并满足最基本的要求(长度,数据类型)。 之后,可以进行更严格的验证(如果需要)。

然后,您需要返回足够的视图以向用户显示搜索结果或搜索中的任何问题,以便他们可以重试。

除了回答您的问题,我无能为力了。 您的方法很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM