gpt4 book ai didi

c# - 验证哪个? Viewodel、Model、Html、jQuery 还是全部?

转载 作者:太空宇宙 更新时间:2023-11-03 10:22:18 24 4
gpt4 key购买 nike

如你所知Validation对于一个mvc网站来说非常重要。据我了解,您可以在四个级别进行验证。困惑从这里开始?我应该只使用 ViewModel 验证 还是可以使用 ViewModel 和模型验证 但不使用 HTML 属性 或者可能全部使用。使用所有验证方法会使代码变得复杂,难以阅读模型和 View 模型但很可靠。仅使用 View 模型或模型验证会导致不安全。假设您正在构建一个至少包含 300 - 500 个模型和 View 模型的项目。您的方法是什么?

HTML 属性

<input type="text" required>

ViewModel 数据注释

[Required(ErrorMessage="You must enter your name")]
public string Name {get; set;}

jQuery

$("#someForm").validate()

模型验证和数据注释

[Required(ErrorMessage="ENTER YOUR NAME")]
public string Name {get;set;}

public override IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
//This is related to my architecture. Domain model inherits IValidateObject and overrides it. No big deal. This method raises when dbContext.SaveChange() method is in action
if(Name.Length == "Admin")
{
yield return new ValidationResult("You can't use a reseved name.", new[] {"Name"});
}
}

最佳答案

我建议进行客户端验证(HTML 和 Javascipt)并验证存储在数据库中的实体。

HTML 和 Javascipt 验证在使用您的应用程序时为用户提供快速反馈并改善用户体验。您永远不应忘记,任何针对您网站的客户输入都是不安全的,您不能相信该数据。

实体验证也应该完成,因为如果你有另一个 API,你必须确保没有无效数据存储在数据库中。

关于c# - 验证哪个? Viewodel、Model、Html、jQuery 还是全部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32964483/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com