在MVC 4中将Object转换为JSON

use*_*105 30 json asp.net-mvc-4

我正在使用一个对象转换为JSON JavaScriptSerializer,我可以在服务器代码中看到这个JSON输出:

[{"UserId":1,"UserName":"Admin"}]
Run Code Online (Sandbox Code Playgroud)

但是在UI中,它会转换为类似下面的内容

[{"UserId":1,"UserName":"Admin"}].
Run Code Online (Sandbox Code Playgroud)

怎么逃避那些"

Dar*_*rov 69

如果您使用的是Razor视图引擎,则需要使用以下Html.Raw方法:

<script type="text/javascript">
    var model = @Html.Raw(Json.Encode(Model));
</script>
Run Code Online (Sandbox Code Playgroud)

注意Json.Encode方法的用法较短且相当于new JavaScriptSerializer().Serialize().


Eri*_*sch 22

你为什么这样做?为什么不回来JsonResult

public ActionResult MyMethod()
{
    List<ListItem> list = new List<ListItem>() {
        new ListItem() { UserId = "1", UserName = "Admin" },
        new ListItem() { UserId = "2", UserName = "JohnDoe" },
        new ListItem() { UserId = "3", UserName = "JaneDoe" }};

    return this.Json(list);
}
Run Code Online (Sandbox Code Playgroud)

  • @YannickBlondeau - JsonResult*IS*是一个ActionResult.我更喜欢返回类型是最常用的,以减少耦合.例如,如果您决定将返回类型更改为XML,则可以执行此操作,而无需同时更改返回类型.只是我的个人政策. (3认同)
  • 关于你的上一次编辑,为什么最好将`ActionResult`指定为返回类型而不是`JsonResult`? (2认同)