我有这个部分的观点:
@model Dictionary<int, string>
<select style="height: 17px;">
<option value=''></option>
@foreach (KeyValuePair<int, string> value in Model)
{
<option value='@Html.Encode(value.Key.ToString())'>
@Html.Encode(value.Value)
</option>
}
</select>工作正常,但如果值中有德国元音,则显示错误:

因此,ö取代了ö。
如果我使用@value.Value而不是@Html.Encode(value.Value),它可以工作,但出于安全原因,我想Html.Encode数据库中的值。
发布于 2013-07-05 19:29:00
你不需要手动Html.Encode,因为Razor通过这种方式保证了安全性。这意味着Razor HTML会对您使用@ sing写入输出的每个字符串进行编码。
因此,您可以安全地编写@value.Value。
顺便说一下,您所看到的效果是双重编码的情况,因为您首先使用Html.Encode对文本进行编码,然后在您使用@Html.Encode(value.Value)将其写出时对已经编码的文本进行第二次编码。
https://stackoverflow.com/questions/17487656
复制相似问题