C# HtmlControl.Attributes的编码

C# HtmlControl.Attributes的编码,c#,.net,asp.net,C#,.net,Asp.net,有人知道是否有必要清理HtmlControl.Attributes的内容吗?MSDN在以下方面保持沉默: 换句话说,以下哪项是正确的: HtmlGenericControl control = new HtmlGenericControl(); /*Option 1*/ control.Attributes["value"] = HttpUtility.HtmlAttributeEncode(unsafestring); /*Option 2*/ control.Attributes["val

有人知道是否有必要清理HtmlControl.Attributes的内容吗?MSDN在以下方面保持沉默:

换句话说,以下哪项是正确的:

HtmlGenericControl control = new HtmlGenericControl();
/*Option 1*/ control.Attributes["value"] = HttpUtility.HtmlAttributeEncode(unsafestring);
/*Option 2*/ control.Attributes["value"] = unsafestring;
ASPX:

呈现的HTML:

<div id="div" title="this is unsafe~~~&quot;>">test</div>
我想这毕竟是有区别的,我还没有找到任何关于这方面的文档参考。

ASPX:

呈现的HTML:

<div id="div" title="this is unsafe~~~&quot;>">test</div>

我想这毕竟是有区别的,我还没有找到任何关于这方面的文档参考。

在这个级别上没有关于HTML编码细节的MSDN文档。如果您愿意进行一些反射器探索,您会发现在渲染时,默认情况下,HtmlAttributeNCode会自动应用于大多数属性值,但这是一种很容易被控件实现者覆盖的行为


换句话说,假设对任何给定属性执行或不执行自动编码不是一个好主意。除非您愿意开发一个遵循单一指导原则WRT自动编码的自己的控件,否则您可能需要考虑创建一组单元测试,以验证所使用的属性是否应用了您所期望的编码行为。这将有助于您防止将来对编码行为的潜在更改,并确认当前的编码行为。

此级别没有关于HTML编码详细信息的MSDN文档。如果您愿意进行一些反射器探索,您会发现在渲染时,默认情况下,HtmlAttributeNCode会自动应用于大多数属性值,但这是一种很容易被控件实现者覆盖的行为


换句话说,假设对任何给定属性执行或不执行自动编码不是一个好主意。除非您愿意开发一个遵循单一指导原则WRT自动编码的自己的控件,否则您可能需要考虑创建一组单元测试,以验证所使用的属性是否应用了您所期望的编码行为。这将有助于您防范编码行为未来可能发生的变化,并确认当前的编码行为。

MSDN文档似乎没有明确说明HtmlEncoding正在发生,但从以下方法参考来看,这似乎是显而易见的。我也没有看到可以绕过它的方法的重载。

MSDN文档似乎没有明确说明HtmlEncoding正在发生,但从下面的方法引用来看,它似乎很明显。我也看不到可以绕过它的方法的重载。

测试很好,但是有没有一个规范引用了它?不幸的是,我找不到任何。我已经进一步编辑了我的测试结果,一定要看一看。测试很好,但是有一个测试引用了说明它的规范吗?不幸的是,我找不到任何测试。我已经进一步编辑了我的测试结果,请看一看。
<div id="div" title="this is unsafe~~~&quot;>">test</div>
<div id="div" title="this is unsafe~~~&amp;quot;>">test</div>