我创建了这个扩展方法,它将数据库中所有类别的字符串作为超链接返回。大!
@Html.MyMenu()
问题是链接显示为文本而不是呈现为超链接。
查看源代码时,我看到:
<div id="menucontainer">
<a href="/Anuncio/Electronics">Electronics</a><a href="/Anuncio/Clothes">Clothes</a><a href="/Anuncio/Domestic">Domestic</a><a href="/Anuncio/Garden">Garden</a>
</div>
我想我可能错了,但我记得在MVC2中(使用默认视图引擎)你有:
<%: this is rendered, right? %>
或者我错了?无论如何,我正在使用MVC3和Razor引擎。非常感谢你的帮助。我真的很享受尽可能多的学习。
答案 0 :(得分:2)
答案 1 :(得分:1)
在RC2中,一个名为@ HTml.Raw的新方法应该用于此。
或者您可以更改MyMenu以返回HtmlString或MvcString而不仅仅是字符串。
答案 2 :(得分:0)
你的扩展方法应该返回一个MvcHtmlString
,以便使用<%: %>
在你的页面上正确显示如果它返回一个字符串,所有尖括号和其他html特殊字符将被html编码
答案 3 :(得分:0)
RC2支持@ Html.Raw()输出原始HTML
来自Scott Guthrie's RC2 anouncement
使用RC2,我们添加了一个Html.Raw()辅助方法,您可以使用它来明确指出您不想对输出进行HTML编码,而是希望“按原样”呈现内容