C# HttpGet上的MVC验证

C# HttpGet上的MVC验证,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个连接到HttpGet方法的搜索表单 [HttpGet] public ActionResult Search(Filter filters){ { ... } 我希望能够做的是模态验证,就像在HttpPost中那样。然而,我不想使用HttpPost方法,因为我想让用户能够为他们的搜索结果添加书签。 过滤器是我的dto 有没有办法在HttpGet方法中进行验证?像 if (!filters.Name.HasValue) {

我有一个连接到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

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

记住,数据注释验证应该是简单的;i、 e.检查是否填充了值并满足最基本的要求(长度、数据类型)。之后,可以进行更认真的验证(如果需要)

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

除了回答你的问题之外,我没有什么可以补充的了。你的方法很好