JavaScript事件传递报价

时间:2015-11-12 08:43:05

标签: jquery asp.net-mvc

我有点击事件

IndexedDB

问题是ObjectStore ArrayBuffer

html呈现:

@foreach (var item in Model)
{
   <button class="btn btn-small btn-danger btn-flat"  type="button" onclick="SetDelete('@item.Id','@Html.Raw(item.Name)')"><i class="fa fa-times" title="Delete"></i></button>
}

问题是引用,我如何格式化\ cater for the quote'?

2 个答案:

答案 0 :(得分:1)

您可以使用HttpUtility.JavaScriptStringEncode

'@Html.Raw(HttpUtility.JavaScriptStringEncode(item.Name))'

答案 1 :(得分:0)

如果你对混合报价/单引号没有强烈的感觉,你可以这样做(翻转引号):

@foreach (var item in Model)
{
    <button class="btn btn-small btn-danger btn-flat" type="button" onclick='SetDelete("@item.Id","@Html.Raw(item.Name)")'><i class="fa fa-times" title="Delete"></i></button>
}

如果您对保留属性的双引号有强烈的感觉,或者动态字符串可能包含引号或单引号的混合,则可能必须将它们转义。

SetDelete('@item.Id','@Html.Raw(item.Name.Replace("'", "\'"))')

为了进一步整理,您可以将该逻辑移动到ViewModel:

SetDelete('@item.Id','@item.NameJsEncoded')