ASP.NET Core MVC应用程序中的验证模型和覆盖值(如果需要)

问题描述 投票:0回答:1

我正在使用ASP.NET Core MVC Web应用程序,该应用程序将Angular 9用于前端和SQL Server数据库。该网站包含许多“创建”(或“更新”)对话框,用户可以在其中创建不同类型的对象,然后将这些对象写入数据库。

[在大多数情况下,创建此类对象时涉及一些验证逻辑。例如,这些对象的某些属性值需要在一定范围内,例如0到100之间(取决于属性的类型)。对于某些属性,还定义了默认值,如果用户未为该属性输入任何其他值,则应使用这些默认值。

当前,此类验证是通过Angular FormControls在前端完成的,这显然意味着可以通过直接向服务器发送POST / PUT请求而不是使用前端来轻松地绕过验证。

有没有办法在前端和后端中应用这样的验证,而不必分别在前端和后端中实现它们?

angular validation model asp.net-core-mvc
1个回答
0
投票

有没有办法在前端和后端中应用这样的验证,而不必分别在前端和后端中实现它们?

在具有MVC / API后端的Angular前端中,您无法实现/自定义数据验证器,并使它在一处执行客户端验证和服务器端验证。

我们知道,用户输入验证在客户端进行,这可以帮助避免不必要的服务器往返行程当表单上存在输入错误时。

正如您提到的,某些恶意用户可能会绕过客户端脚本,因此通常我们还会执行服务器端验证,以防止恶意输入。在ASP.NET Core中,模型验证功能有助于验证模型数据,我们可以检查ModelState.IsValid,然后在代码逻辑中做出适当的反应。

此外,您可以从以下位置了解ASP.NET Core中模型验证的概念和基本用法:https://docs.microsoft.com/en-us/aspnet/core/mvc/models/validation?view=aspnetcore-3.1

© www.soinside.com 2019 - 2024. All rights reserved.