我有一个连接到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;}
...
不确定这是否正确。同样,我不确定哪种方法最好。任何帮助/建议都会很棒。
答案 0 :(得分:1)
是的,这很好。
模型绑定和验证并非要求 HTTP方法为POST
。
尝试尽可能使用数据注释。它们干净而优雅。如果需要,可以创建自己的。
请记住,数据注释验证应该很简单;即检查是否填充了值并满足最基本的要求(长度,数据类型)。之后,可以进行更严格的验证(如果需要)。
然后,您需要返回一个足够的视图,向用户显示搜索结果或搜索的任何问题,以便他们可以重试。
我可以添加更多内容来回答您的问题。你的方法很好。