在.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', ...
实际输出:
'Col 1','Col 2','Col 3', ...
如何使用上面的Razor语法输出单引号字符?
答案 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
。