当前位置:  开发笔记 > 编程语言 > 正文

如何使用Razor将未编码的Json写入我的View?

如何解决《如何使用Razor将未编码的Json写入我的View?》经验,为你挑选了3个好方法。

我正在尝试使用Razor将对象作为JSON编写到我的Asp.Net MVC View中,如下所示:


问题是在输出中JSON被编码,我的浏览器不喜欢它.例如:


如何让Razor发出未编码的JSON?



1> Lorenzo..:

你做:

@Html.Raw(Json.Encode(Model.PotentialAttendees))

在早于Beta 2的版本中,您可以这样做:

@(new HtmlString(Json.Encode(Model.PotentialAttendees)))


如果我想在对象属性中使用某些编码文本,该怎么办?\,{\"UrlPart \":\"TjcolklFX5c \",\"Title \":\"当Mama Isn\u0027t Home \"},{\"例如.这将打破因为js认为'正在逃避var a =''的原生字符串decalration同样适用于"".anny idea?

2> Jeremy Cook..:

Newtonsoft的JsonConvert.SerializeObject表现与Json.Encode@ david-k-egghead建议的行为不同,并且可以让你接受XSS攻击.

将此代码放入Razor视图中以查看使用Json.Encode是否安全,并且可以在JavaScript上下文中使Newtonsoft安全,但不是没有额外的工作.

" } }
    ));
    alert('jsonEncodePotentialAttendees passed XSS test: ' + jsonEncodePotentialAttendees[0].Name);

" } }), addDoubleQuotes: true)));
    alert('safeNewtonsoftPotentialAttendees passed XSS test: ' + safeNewtonsoftPotentialAttendees[0].Name);

" } }));
    alert('unsafeNewtonsoftPotentialAttendees passed XSS test: ' + unsafeNewtonsoftPotentialAttendees[0].Name);

也可以看看:

是否需要在Razor视图中编码JsonConvert.SerializeObject的输出?

XSS预防规则


很高兴我向下滚动.我立即看到了接受的答案,我希望有一个安全的方法来做到这一点.

3> Ravi Ram..:

使用Newtonsoft


推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有