在MVC视图中如何正确显示数据库中的锚点标签?
解决MVC视图中锚点标签显示为带双引号文本的问题
老哥,你这个问题我太熟了!核心原因是Razor视图默认会对输出的内容做HTML编码,导致数据库里的转义HTML代码(比如<a href="index.html">这类)没有被浏览器解析成真正的锚点,反而被当成普通文本显示,还带上了多余的引号。
解决方案很简单:用Html.Raw()方法输出内容
把你视图里的代码:
foreach (var i in Model.Where(a => a.ParentMenu.Equals(ParentMenu))) { @i.MenuName }
改成:
foreach (var i in Model.Where(a => a.ParentMenu.Equals(ParentMenu))) { @Html.Raw(i.MenuName) }
Html.Raw()会告诉Razor不要对这段内容进行HTML编码,让浏览器直接解析里面的HTML标签,这样数据库里的锚点代码就能正确渲染成可点击的链接啦。
注意事项
要确保数据库里的MenuName内容是安全的!如果这些内容是用户输入的,一定要先做XSS攻击过滤,防止恶意脚本被渲染执行,避免安全风险。
内容的提问来源于stack exchange,提问作者Umar Saleem
相关产品推荐
相关产品推荐

