我有一个ASP.Net Application
与简单WebForms
。有一些页面用于插入和更新数据库中的记录。如何防止输入值在表单中提交?
但是,在某些情况下,某些输入控制值不应更新。所以,我已经设置了disabled
属性来防止用户更新值。但是,用户也可以从开发人员工具中启用它并直接更改值。
如果我删除使用javascript
那么该控件的值不会在表单提交的元素name
属性,它不会在服务器端(它完美)影响。但是,如果用户在name
属性中重新指定了相同的值(,即'ctl00$ContentPlaceHolder2$txtBranchCode'
),则输入框的值将再次提交(这应该不会发生)。
代码:
<td align="left">
<input name="ctl00$ContentPlaceHolder2$txtBranchCode" type="text" value="HO"
id="ctl00_ContentPlaceHolder2_txtBranchCode">
</td>
现在,我想的是,如果我可以防止形式那么我的问题就可以迎刃而解要提交的元素值。我无法在每个页面添加条件“如果控件被禁用,则不应更新。”有很多页面,我必须在每一页都做同样的工作。如果有共同的解决方案,那么它会更好。
唯一安全可靠的方法是在服务器上执行此操作。你需要检查是否应该使用该值,如果不是,则忽略它。您已经说过,客户上做的任何事情都可以改变。 – webnoob
是@webnoob我知道服务器端验证更好,但我无法修改所有页面,它太多了。所以,我试图找到一个通用的解决方案。如果我可以从asp窗体注销控件,Asp Form不会发布该控件的值。 – Shell
不仅更好 - 唯一安全的方式。如果您现在面临着这个架构的问题,您将来可能会再次面对这个问题。为什么在许多地方必须采用相同的逻辑?你能否将某些功能压缩到可以为你做这个验证的基类/服务?我理解这可能意味着需要做很多工作,但这取决于这是多少要求。 – webnoob