带有换行符的Javascript var使用MVC Model属性
Javascript var with a newline using MVC Model property
我必须将Javascript变量设置为等于MVC模型中的属性。
我这样做是为了检测是否对文本框进行了任何更改,这是在设置"原始"值。
我的Javascript代码如下:
var initVal = '@Model.ReferralHistoryDetail[1].ReferralComments';
我得到了一个错误,我认为这是由于在注释中包含回车。
Uncaught SyntaxError: Unexpected token ILLEGAL
在本例中呈现的HTML将结束引号放在换行符上,这就是开发人员控制台中显示的错误。
例如,呈现的HTML是:
var initVal = 'blah blah blah
';
处理这个问题的正确方法是什么?
您希望使用JavaScriptStringEncode命令以兼容javascript的方式对字符串进行编码。
var initVal = '@HttpUtility.JavaScriptStringEncode(Model.ReferralHistoryDetail[1].ReferralComments)';
如果用'
替换'n
字符,对于多行字符串,您将有一个有效的语法。
所以这应该有效
var initVal = '@Model.ReferralHistoryDetail[1].ReferralComments.Replace("'n","''")';
我找到了其他方法来允许javascript中的多行字符串,在这个答案中。
您需要创建一个扩展方法,用
标记替换换行符。
或者使用HtmlEncode方法像这样:
var initVal = @Html.Raw(HttpUtility.HtmlEncode(@Model.ReferralHistoryDetail[1].ReferralComments).Replace("'n", "<br />"))
您不能像那样从JavaScript访问Model属性,JavaScript不能对您的模型做任何事情。
在页面上创建一个变量
@{var value=@Model.ReferralHistoryDetail[1]。ReferralComments;
然后访问javascript中的值,尽管不确定为什么您不直接在页面上呈现为什么您需要javascript,除非我缺少
相关文章:
- 使用mvc和jquery显示更多点击数据
- Begin正在使用MVC 5重新提交整个页面
- 如何在不使用mvc 4中的模型的情况下进行客户端验证
- 表单未使用 MVC 提交任何值 Asp.Net
- 我应该如何在Ext4中使用MVC
- 使用 MVC 删除 JavaScript 中硬编码字符串 Asp.Net 最佳方法
- AngularJS使用MVC动态获取html,附加到主体,并绑定一个控制器
- 使用MVC控制器与websockets连接到windowsazure
- Sencha Touch 2-使用MVC获取Form值
- 在视图模型中使用 MVC 视图返回 JsonResult 数据
- 单页应用程序 - 我应该在服务器端使用 MVC 框架吗?
- Javascript并使用MVC风格的模型(带有角度)
- 使用MVC捆绑时CSHTML文件中的Javascript智能感知
- 在谷歌地图上创建一个多边形,并使用MVC将结果保存到数据库中
- 使用MVC 5和Bootstrap Modals的Wierdness
- JavaScript If 语句如何正确使用(MVC,剑道图)
- 如何使用 mvc 控制客户端上的复选框值
- 在表单提交后,无法使用 mvc razor 中的 ajax 从其中的另一个分部视图刷新分部视图
- 未使用 MVC 4.5 不显眼的验证提交实时数据
- JavaScript 运行时错误:“$”未定义 - 使用 MVC 4