我有ASP.Net Application
简单WebForms
。有一些页面用于插入和更新数据库中的记录。
但是,在某些情况下,不应更新某些输入控件值。因此,我设置了disabled
属性以防止用户更新值。但是,用户也可以从开发人员工具启用它并直接更改值。
如果我使用name
从元素中删除javascript
属性,那么该控件的值将不会在表单中提交,并且不会在服务器端受到影响 (它完美地运作)。但是,如果用户在'ctl00$ContentPlaceHolder2$txtBranchCode'
属性中重新分配相同的vaule( ie name
),则输入框的值将再次提交(不应该发生) )
代码:
<td align="left">
<input name="ctl00$ContentPlaceHolder2$txtBranchCode" type="text" value="HO"
id="ctl00_ContentPlaceHolder2_txtBranchCode">
</td>
现在,我想要的是如果我可以阻止在表单中提交元素值,那么我的问题就可以轻松解决了。我无法在每个页面添加条件&# 34;如果控件被禁用则不应该更新。&#34; 有很多页面,我必须在每一页都做同样的工作。如果有共同的解决方案,那就更好了。
答案 0 :(得分:0)
您无法信任客户端代码来控制数据库中的更新。 你应该做的是编写一些服务器端代码来完成这项工作。客户端代码可以很容易地被客户端操纵,你不能相信它。
答案 1 :(得分:0)
如果不应更新输入控件值,请不要通过设置Visible="false"
来呈现控件。
服务器端验证更安全,而客户端验证提供更好的用户体验,因此需要权衡。理想情况下,两者都应该到位,通过客户端验证提供更好的用户体验,并通过服务器端验证保护服务器资源和数据库。