C#在Razor中使用字符串插值转义双引号?

问题描述 投票:2回答:2

我有以下使用三元运算符的剃刀代码来包含或省略data- *属性:

 <select class="form-control"
        @(field.DependentDropdown ? $"data-selected={Model.KeyValues.GetValue(field.Name)}" : "")>

当它在HTML中呈现时,它会像这样出现:

<select class="form-control" 
        data-selected="Toyota" yaris="">

正如您所看到的,数据选择属性的值未正确格式化 - 它应该是用双引号"Toyota Yaris"括起来的一个单词。

如何正确转义或添加双引号:

 $"data-selected={Model.KeyValues.GetValue(field.Name)}"
c# razor interpolation string-interpolation
2个回答
2
投票

你需要的是使用很少见的<text>语法

EG

<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> } }>

我很难说服它在三元运算符中工作 - 如果你的语法正确,可以随意编辑答案


1
投票

你可以试试这个。

Fiddle中的一个例子

 $"data-selected=\"{Model.KeyValues.GetValue(field.Name)}\""
© www.soinside.com 2019 - 2024. All rights reserved.