代码之家  ›  专栏  ›  技术社区  ›  adam78

用Razor中的字符串插值来转义双引号?

  •  0
  • adam78  · 技术社区  · 7 年前

    我有以下带有三元运算符的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)}"
    
    2 回复  |  直到 7 年前
        1
  •  5
  •   Zeph Nikolas    7 年前

    你需要的是用很少见到的东西 <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> } }>
    

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

        2
  •  4
  •   cneale    6 年前

    在对 Raw() method on the HtmlHelper 班级。

    <select class="form-control"
        @(field.DependentDropdown ? Html.Raw($"data-selected=\"{Model.KeyValues.GetValue(field.Name)}\"") : "")>
    
        3
  •  -1
  •   Antoine V    7 年前

    你可以试试这个。

    一个例子 Fiddle

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