@using MvcMusicStore.Models;
@model IEnumerable<Album>
@{
ViewBag.Title = "List2";
string hola = "Test <script>alert('bip')</script>";
}
<h2>@@List2</h2>
<span>@hola</span>
<ul>
@foreach (Album a in Model )
{
<li>@a.Title,@a.Tipo</li>
}
</ul>
我已经读过razor自动html编码字符串,但我的视图上面有代码 我仍然得到没有任何编码的字符串。
顺便说一下我在localhost上运行,以防它以任何方式影响。
提前致谢
更新
感谢您对Codo回答的所有答案。问题是我只是 查看页面上打印的文本,但不查看编码所在的页面源 反映。
谢谢
答案 0 :(得分:0)
我在这里看不到问题:
<span>@Html.Raw(hola)</span>
<br />
<span>@hola</span>
结果在浏览器中可见:
Test
Test <script>alert('bip')</script>
并且是“警报弹出”说双语。
注意:这不是您期待的答案,请更详细地解释您的问题。
答案 1 :(得分:0)
我已将测试用例缩减到相关部分:
@{
string hola = "Test <script>alert('bip')</script>";
}
<span>@hola</span>
执行时,它会生成以下HTML代码(查看源HTML时):
<span>Test <script>alert('bip')</script></span>
在浏览器中显示:
测试&lt; script&gt; alert('bip')&lt; / script&gt;
它不会将其作为Javascript代码执行,也不会显示警告框。
所以我认为它的工作方式与广告一样,并且可以正确编码HTML。