使用MVC Model属性的带有换行符的Javascript var

Pat*_*ick 2 javascript asp.net-mvc asp.net-mvc-5

我必须将Javascript变量设置为等于我的MVC模型中的属性。

我这样做是为了检测是否对文本框进行了任何更改,这是在设置“原始”值。

我的Javascript代码如下所示:

var initVal = '@Model.ReferralHistoryDetail[1].ReferralComments';
Run Code Online (Sandbox Code Playgroud)

我收到一个错误,我认为这是由于注释中包含回车符引起的。

Uncaught SyntaxError: Unexpected token ILLEGAL
Run Code Online (Sandbox Code Playgroud)

在这种情况下,呈现的HTML将结束引号放在换行符上,这就是在开发人员控制台中显示的错误。

例如,呈现的HTML为:

        var initVal = 'blah blah blah
';
Run Code Online (Sandbox Code Playgroud)

处理此问题的正确方法是什么?

Gra*_*x32 6

您想使用JavaScriptStringEncode命令以JavaScript兼容方式对字符串进行编码。

var initVal = '@HttpUtility.JavaScriptStringEncode(Model.ReferralHistoryDetail[1].ReferralComments)';
Run Code Online (Sandbox Code Playgroud)