我有一个Asp.net表单(runat = Server)
我试图找出HTML实体和ISO Latin-1代码之间的区别 - 为什么一个Do会导致异常而另一个Isnt。
我有输入和按钮
<input type="text" value="<d"/>
<asp:Button ID="s" runat="server" Text="press" />
当我按提交时 - 它与Exception一致,这很好。
解决问题的一种方法是使用encodeUriComponent:
所以把价值放在:
value="%3Cd"/>
很好,提交时没有说明。
另外,正如我们所知 - 如果我放
>
或<
(这是html实体)它不会出现异常。 (它在Html世界中有其他作用 - 显示'&lt;''&gt;' - 而不是试图将它们解析为html ......)
(没有例外 - 第二次按下 - 因为当它从服务器返回时 - 文本框显示<d
这是不好的......
不允许转到ISO Latin-1 code
like here
现在让我们试着代替<d
----&gt; <d
然后爆炸!
1)为什么我在拉丁语代码中得到异常而不是在html实体中?
1)他们之间有什么区别?
2)我何时应该使用其中一种?
我知道我可以通过设置validateRequest = false来禁用检查。 但我的问题与此无关。
答案 0 :(得分:1)
您的拉丁语示例包含&amp;#。这些正是触发验证错误What characters or character combinations are invalid when ValidateRequest is set to true?的字符。所以这并不奇怪。