C# 在 Razor 中使用字符串插值转义双引号?
C# Escaping double quotes with String interpolation in Razor?
我有以下带有三元运算符的剃刀代码,用于包含或省略数据-* 属性:
<select class="form-control"
@(field.DependentDropdown ? $"data-selected={Model.KeyValues.GetValue(field.Name)}" : "")>
当它在 HTML 中呈现时,结果如下:
<select class="form-control"
data-selected="Toyota" yaris="">
如您所见,data-selected 属性的值格式不正确 - 它应该是用双引号括起来的一个词 "Toyota Yaris"
。
如何正确转义或添加双引号:
$"data-selected={Model.KeyValues.GetValue(field.Name)}"
你可以试试这个。
Fiddle中的示例
$"data-selected=\"{Model.KeyValues.GetValue(field.Name)}\""
您需要的是使用很少见的 <text>
语法
例如
<h1 @{if (true) { <text>data-selected="Hello world"</text> } }>Hello</h1>
试试这个:
<select class="form-control"
@{ if (field.DependentDropdown) { <text>data-selected="@Model.KeyValues.GetValue(field.Name)"</text> } }>
我很难说服它在三元运算符中工作 - 如果语法正确,请随时编辑答案
将字符串包装在对 Raw() method on the HtmlHelper class 的调用中。
<select class="form-control"
@(field.DependentDropdown ? Html.Raw($"data-selected=\"{Model.KeyValues.GetValue(field.Name)}\"") : "")>
我有以下带有三元运算符的剃刀代码,用于包含或省略数据-* 属性:
<select class="form-control"
@(field.DependentDropdown ? $"data-selected={Model.KeyValues.GetValue(field.Name)}" : "")>
当它在 HTML 中呈现时,结果如下:
<select class="form-control"
data-selected="Toyota" yaris="">
如您所见,data-selected 属性的值格式不正确 - 它应该是用双引号括起来的一个词 "Toyota Yaris"
。
如何正确转义或添加双引号:
$"data-selected={Model.KeyValues.GetValue(field.Name)}"
你可以试试这个。
Fiddle中的示例
$"data-selected=\"{Model.KeyValues.GetValue(field.Name)}\""
您需要的是使用很少见的 <text>
语法
例如
<h1 @{if (true) { <text>data-selected="Hello world"</text> } }>Hello</h1>
试试这个:
<select class="form-control"
@{ if (field.DependentDropdown) { <text>data-selected="@Model.KeyValues.GetValue(field.Name)"</text> } }>
我很难说服它在三元运算符中工作 - 如果语法正确,请随时编辑答案
将字符串包装在对 Raw() method on the HtmlHelper class 的调用中。
<select class="form-control"
@(field.DependentDropdown ? Html.Raw($"data-selected=\"{Model.KeyValues.GetValue(field.Name)}\"") : "")>