禁用单个控件的EventValidation,是否可能?

Raú*_*Roa 13 asp.net eventvalidation

我知道这是一个备受争议的话题,通常在您将此视为解决方案时,您可能需要重新考虑您的UI逻辑.

我知道我可以使用ClientScriptManager.RegisterForEventValidation传递验证.但是,我真的很想知道.是否可以删除单个控件的事件验证?有办法解决这个问题吗?

我在渲染后从客户端修改DropDownList.

Dal*_*e K 32

SupportsEventValidation属性不是为子类继承的,因此如果您创建DropDownList的子类,不要将该属性应用于子类,并使用页面上的子类,您将拥有一个不触发事件验证的控件,甚至如果在页面上启用了事件验证.

public Class DynamicDropDownList : DropDownList
{
}
Run Code Online (Sandbox Code Playgroud)

http://msdn.microsoft.com/en-us/library/system.web.ui.supportseventvalidationattribute%28v=VS.110%29.aspx

  • 我已经4年多了.这是我见过的"可怕答案"和"精彩答案"的最佳碰撞.这个答案需要一个"捐赠"按钮. (4认同)

Bry*_*yan 3

对你的问题的简短回答是:不,没有办法做到这一点。您必须禁用整个页面的 EventValidation。

有多种解决方法...如果您确实不想禁用 EventValidation,请将所选值存储在隐藏字段中并恢复 DropDownList 的状态(或者可能只是清除选择?)。

如果您需要在客户端添加所有值,则无论如何都必须使用其他方法发送这些值,因为它们不会出现在服务器端控件中。这些值没有发布!