我在为按钮实现自定义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及更早版本开展这项工作?
任何想法都会受到赞赏。
提前致谢。
答案 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]-->