【问题标题】:Razor escaping single quotes in data attributesRazor 转义数据属性中的单引号
【发布时间】:2016-09-01 14:16:41
【问题描述】:

我正在尝试让 Razor 显示一个带有 data_bind 属性的下拉列表以用于淘汰

所以从

开始
 @Html.DropDownListFor(model => model.Form.selectedItem, Model.empty, new
               {
                    @class = "multiselected" 

               })

我已经尝试了多种方法来使用字典对象添加数据

 { "data_bind" , MvcHtmlString.Create("options: optionSelected, optionsText: 'name', optionsValue: 'id', optionsCaption: 'Choose...'") }

这个

 "data_bind" = MvcHtmlString.Create("options: optionSelected, optionsText: 'name', optionsValue: 'id', optionsCaption: 'Choose...'") 

 "data_bind" = Html.Raw("options: optionSelected, optionsText: 'name', optionsValue: 'id', optionsCaption: 'Choose...'") 

"data_bind" = Html.Raw(MvcHtmlString.Create("options: optionSelected, optionsText: 'name', optionsValue: 'id', optionsCaption: 'Choose...'"))

无论我尝试什么,单引号都会更改为'。什么给了?

编辑

事实证明,淘汰赛不介意引号并且仍然可以绑定。 其他问题与淘汰赛和数据属性无关。在列表/输入元素中。

【问题讨论】:

标签: javascript asp.net-mvc razor knockout.js quotes


【解决方案1】:

即使单引号在 html 中被转义,这也不会影响绑定,它会正确地将它们视为单引号。

ko.applyBindings({
  options: [{ name: 'first one', id: '1' },
            { name: 'second one', id: '2' }, 
            { name: 'third one', id: '3' }]
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.0/knockout-min.js"></script>

<select data-bind="options: options, optionsText: &#39;name&#39;, optionsValue: &#39;id&#39;, optionsCaption: &#39;Choose...&#39;">
</select>

https://jsfiddle.net/oxtupfx8/

【讨论】:

  • 啊,有趣 - 我会试一试
  • 为了胜利。 Arg 刚从 Knockout/c# 开始,所以让自己休息一下。调试淘汰赛可能有点棘手,所以我只是假设它是引号。感谢您的帮助。
猜你喜欢
  • 2022-01-22
  • 2012-02-08
  • 2011-11-07
  • 1970-01-01
  • 2012-11-22
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
相关资源
最近更新 更多