自定义按钮WebControlAdapter IE7问题

时间:2009-08-20 05:47:19

标签: asp.net internet-explorer-7

我在为按钮实现自定义WebControlAdapter时遇到了一些问题。我按照滑动门模式输出以下HTML:

<button value="submit" name="Button1" id="Button1" type="Submit" onclick="__doPostBack('Button1','')"><span>Button</span></button>  

取代标准:

<input id="Button1" type="submit" value="Button" name="Button1"/>

这样做(除了其他原因)因此按钮将根据其中包含的文本调整大小,因此不仅仅是出于审美原因。这种方法在除IE7之外的所有浏览器中运行良好,我之前假设(IE8运行良好)。我已经跟踪问题,IE7回发了button元素的内容,而不是值。这意味着返回span标记导致ASP.NET抛出:

[HttpRequestValidationException (0x80004005): A potentially dangerous Request.Form value was detected from the client (Button1="<SPAN>Button</SPAN>").] 

哪种行为正确。我意识到我可以使用Page.ValidateRequest属性禁用此行为,但由于这是一个现有的应用程序,这将导致每个页面上的重大更改,以手动保护应用程序免受跨站点脚本攻击。

是否有人知道我可以为IE7及更早版本开展这项工作?

任何想法都会受到赞赏。

提前致谢。

2 个答案:

答案 0 :(得分:1)

尝试在aspx页面上添加validaterequest = false标记。希望这有效

答案 1 :(得分:0)

我和你有类似的问题,但在这里找到答案: what-disadvantages-are-there-to-the-button-tag-it-seems-there-are-quite-a-fe

将此代码添加到我的head标签修复了问题:

  <!--[if lt IE 8]>
    <script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE8.js"></script>
  <![endif]-->