剃刀 - 输出单引号

时间:2014-06-03 19:59:28

标签: asp.net-mvc razor

在.NET 4.5 / MVC 5.1.2项目中,我尝试使用此Razor语法在JavaScript标记内写入:

@string.Join(",", ((IEnumerable<JqGridColumn>)ViewBag.JqGridColumns)
    .Select(p => Html.Raw("'" + p.Name + "'")))

预期产出:

'Col 1', 'Col 2', 'Col 3', ...

实际输出:

&#39;Col 1&#39;,&#39;Col 2&#39;,&#39;Col 3&#39;, ...

如何使用上面的Razor语法输出单引号字符?

1 个答案:

答案 0 :(得分:5)

您需要将Html.Raw放在string.Join周围而不是Select

@Html.Raw(string.Join(",", ((IEnumerable<JqGridColumn>)ViewBag.JqGridColumns)
    .Select(p => "'" + p.Name + "'")))

因为即使您连接string.Join字符串,string也始终返回普通Html.Raw,因此您需要在创建连接字符串后应用Html.Raw