我有这个输入元素,它与下划线模板效果很好。如何阻止HTML助手编码HTML元素的值属性?
<input id="color" name="color" value="<%= color %>" />
我想使用Html.Helper
方法来生成元素。
我最初尝试只是基本的助手
@Html.TextBox("color", "<%= color %>")
但是,这给了我
<input id="color" name="color" type="text" value="<%= color %>" />
我试着包装的价值属性与Html.Raw
但给出了同样的结果,以及环绕整个帮手结果在同样的事情。
整个块被包裹在<script type="text/template">
标记中。
为什么它会将<
转换为<
以及如何让它停止?
这工作,但
@MvcHtmlString.Create(Html.TextBox("color", "<%= color %>").ToString().Replace("<", "<"))
因为属性值应该被编码。 – SLaks
我认为你的问题在于你正在使用HTML生成工具来生成'text/plain',看起来像'text/html'很糟糕,但它不是HTML,不应该被当作HTML 。 –
@ muistooshort,我将代码包装在'text/template'标签中,但Razor助手在生成代码时并不完全在意。 Underscore不会像我希望的那样处理'<'。我只是想找一种方法让Razor和Underscore.js一起工作。 – Brandon