Asp.net mvc Spark view引擎自动将H()应用于${…}

Asp.net mvc Spark view引擎自动将H()应用于${…},asp.net-mvc,spark-view-engine,html-encode,Asp.net Mvc,Spark View Engine,Html Encode,这是我的spark局部视图的一部分(称为TaskSearch): 由非spark视图生成,代码为: <% Html.RenderPartial(ControllerActions.TaskSearch, ViewData["TaskSearchModel"]); %> 它不是创建html,而是创建html编码的html代码,所以我在输出页面上看到html标记,而不是下拉列表。我可能遗漏了一些东西,但我应该如何在生成的视图中禁用H()用法呢 如果我使用 <%= Html.Dro

这是我的spark局部视图的一部分(称为TaskSearch):

由非spark视图生成,代码为:

<% Html.RenderPartial(ControllerActions.TaskSearch, ViewData["TaskSearchModel"]); %>
它不是创建html,而是创建html编码的html代码,所以我在输出页面上看到html标记,而不是下拉列表。我可能遗漏了一些东西,但我应该如何在生成的视图中禁用H()用法呢

如果我使用

<%= Html.DropDownList("Search.Status", Model.Statuses, "All") %>

一切正常。

我有

<spark>
    <pages automaticEncoding="true"/>
</spark>

在global.asax中,但没有注意到它。更改为false解决了问题。

将automaticencodeding设置为true是一个好主意,因为它可以保护您免受XSS攻击。您始终可以使用强制执行未切换的输出!{}(即!{“你好世界!

”}。检查我使用的AutomaticeCodeding=“true”:)没有注意到!{}早些时候,我用过。谢谢我要回到标准视图引擎,因为它与Intellisense和ReSharper一起工作得更好。
<%= Html.DropDownList("Search.Status", Model.Statuses, "All") %>
<spark>
    <pages automaticEncoding="true"/>
</spark>
settings.SetAutomaticEncoding(true);