HttpGet上的MVC验证

本文关键字:验证 MVC 上的 HttpGet | 更新日期: 2023-09-27 18:05:46

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

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

我想能够做的是模态验证,它是在HttpPost中完成的方式。但是,我不想使用HttpPost方法,因为我希望允许用户能够将他们的搜索结果收藏起来。filter是我的dto

有一种方法,我可以提高验证在HttpGet方法?像. .

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

或使用数据注释

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

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

HttpGet上的MVC验证

可以。

模型绑定和验证不要求 HTTP方法必须是POST

尽可能使用数据注释。它们又干净又优雅。如果需要,创建你自己的。

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

然后,您需要返回一个适当的视图,向用户显示搜索结果或搜索中的任何问题,以便他们可以再次尝试。

对于你的问题,我没有更多可以补充的了。你的方法很好。