我有一個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