簡體   English   中英

C# 在 Razor 中使用字符串插值轉義雙引號?

[英]C# Escaping double quotes with String interpolation in Razor?

我有以下帶有三元運算符的剃刀代碼來包含或省略 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)}"

你需要的是使用很少見的<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> } }>

我很難說服它在三元運算符中工作 - 如果語法正確,請隨時編輯答案

將字符串包裝在對 HtmlHelper上的 Raw() 方法的調用中。

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

你可以試試這個。

小提琴中的一個例子

 $"data-selected=\"{Model.KeyValues.GetValue(field.Name)}\""

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM