Javascript 绑定敲除数据模型中的特殊字符

Javascript 绑定敲除数据模型中的特殊字符,javascript,knockout.js,special-characters,Javascript,Knockout.js,Special Characters,我有一个带有特殊字符的数据模型(学位符号)。。因此,该属性包含以下内容:“48°;f”。但是,当UI更新此数据时,我看到的是“°;”,而不是学位符号。我也尝试过“°;”,但这也不起作用 如何在数据模型中放置特殊字符并将其显示在UI上?您应该为此使用html绑定: <span data-bind="html: test"></span> var vm = { test: ko.observable("48 &deg; f") }; k

我有一个带有特殊字符的数据模型(学位符号)。。因此,该属性包含以下内容:“48
°;
f”。但是,当UI更新此数据时,我看到的是“
°;
”,而不是学位符号。我也尝试过“
°;
”,但这也不起作用


如何在数据模型中放置特殊字符并将其显示在UI上?

您应该为此使用
html
绑定:

<span data-bind="html: test"></span>

var vm = {
    test: ko.observable("48 &deg; f")
};

ko.applyBindings(vm);

var vm={
测试:可观察到的ko(“48°;f”)
};
ko.应用绑定(vm);
这是一把小提琴:


阅读KO文档中的更多内容:

我认为保存数据库中编码的数据不是一个好主意。

model.Description  = ko.observable(
   @html.Raw(
             Model.Description.Replace("\"", "\\\"")
                .Replace("'", "\\\'")
                .Replace(Environment.NewLine, "\\r\\n")
            )
);
使用ASPNET/MVC#(带Razor)将数据库中的信息绑定到文本区域的值。我使用的是c#,在设置observable时,必须在服务器端执行类似的操作

替换字符的示例,以便值绑定正常工作。

model.Description  = ko.observable(
   @html.Raw(
             Model.Description.Replace("\"", "\\\"")
                .Replace("'", "\\\'")
                .Replace(Environment.NewLine, "\\r\\n")
            )
);
扩展方法使绑定更好。

    public static IHtmlString HtmlEscape(this String str)
    {
        if (String.IsNullOrEmpty(str))
            return new HtmlString("");
        var html = ((System.Web.Mvc.WebViewPage)
                       WebPageContext.Current.Page).Html;

        return html.Raw(
             str.Replace("\"", "\\\"")
                .Replace("'", "\\\'")
                .Replace(Environment.NewLine, "\\r\\n"));
    }
和绑定

Description: ko.observable("@(Model.Description.HtmlEscape())");

这对我有用

不过,这有一个更大的问题。将以下内容添加到fiddle中,并尝试将绑定更改为html绑定。然后尝试正确渲染编码字符。祝你好运当使用值绑定时,字符被编码,当使用html时,值在更改时不会更新。此外,当值绑定与某些字符(例如引号和换行符)一起使用时,值绑定会破坏html代码。该字符串不会在数据库中编码。它通过JSONP请求传输到客户机,因此必须在传输之前在服务器上对其进行编码。当html绑定一步完成时,我不需要添加额外的函数来删除编码。