我正在使用Razor将项目插入
Javascript数组中.它使用下面的代码按预期工作.但是,它会在数组末尾产生一个额外的逗号.有人可以建议一种方法来防止这种情况发生吗?
graphByMonth = new Array( @foreach (var cost in Model.Cost) { <text> [@cost.CPM,'@cost.EndDate'],</text> } );
解决方法
处理javascript时,不应该使用任何字符串连接.如果你想将一些服务器端模型传递给javascript变量,你可以像这样将JSON序列化,以确保危险字符被正确转义:
var graphByMonth = @Json.Encode(Model.Cost.Select(cost => new { cpm = cost.CPM,endDate = cost.EndDate }));
它将呈现为:
var graphByMonth = [ { cost: '1',endDate: 'date 1' },{ cost: '2',endDate: 'date 2' },{ cost: '3',endDate: 'date 3' } ];
使用Json.Encode确保值被正确编码,如果您尝试通过使用一些字符串连接,foreach循环或其他任何东西尝试手动执行此操作,您将不会有任何损坏的语法.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。