C# 如何验证inspect元素更改的输入?

C# 如何验证inspect元素更改的输入?,c#,validation,C#,Validation,我在那个应用程序中使用mvc,我有一个文本框,具有只读属性,并使用正则表达式限制特殊字符。在没有只读的情况下,它可以很好地获取输入,但是当在一个页面中查看详细信息时,文本框将是只读的 如果我使用inspect元素更改该值,则会引发异常,并显示该字段的错误消息 我使用这段代码来验证 [RegularExpression(@"^[a-zA-Z0-9\s\-]+$", ErrorMessage = "Special Characters are not allowed")] 我有一个文本框,具有只读

我在那个应用程序中使用mvc,我有一个文本框,具有只读属性,并使用正则表达式限制特殊字符。在没有只读的情况下,它可以很好地获取输入,但是当在一个页面中查看详细信息时,文本框将是只读的

如果我使用inspect元素更改该值,则会引发异常,并显示该字段的错误消息

我使用这段代码来验证

[RegularExpression(@"^[a-zA-Z0-9\s\-]+$", ErrorMessage = "Special Characters are not allowed")]
我有一个文本框,具有只读属性,并使用正则表达式限制特殊字符。在没有只读的情况下,它可以很好地获取输入,但是当在一个页面中查看详细信息时,文本框将是只读的

如果我使用inspect元素更改该值,则会引发异常,并显示该字段的错误消息

换句话说,当用户填写表单并且只允许正则表达式允许的字符时,正则表达式工作正常。在另一个页面中,您显示信息,但出于只读查看目的,您担心用户可能会使用浏览器devOper工具inspect元素更改只读字段。因此,您希望正则表达式阻止它

始终在服务器上验证

您不应该信任在web表单中提交的输入。即使在第一种情况下,当您允许用户编辑字段时,用户也可以关闭正则表达式。这就是为什么您应该在服务器端代码上再次验证

在第二种情况下,当您仅显示信息时,用户无法提交信息,因此如果他们在幕后使用开发人员工具并更改字段,则您不必担心。但是,如果更改影响了可以提交的另一个项目,那么您需要在服务器端验证它

您应该始终在服务器端检查web表单输入,即使您已经在客户端检查了它。如果用户很精明,甚至可以在下拉列表中添加更多选项,从中选择项目,然后提交表单。因此,不要相信它