带有JsonConvert.SerializeObject的$ .parseJSON

shk*_*per 2 jquery json asp.net-mvc-3

将.net类序列化为json并在javascript中使用它的正确方法是什么?

例如在服务器端,我们有这个:

    public ActionResult Index()
    {
        var someClass = new SomeClass { Message = "let's try <b> this </b> and this \" " };
        ViewBag.someDataJson = JsonConvert.SerializeObject(someClass);
        return View();
    }

    public class SomeClass
    {
        public string Message;
    }
Run Code Online (Sandbox Code Playgroud)

在客户端:

<script type="text/javascript">
    $(document).ready(function() {
        var someData = $.parseJSON("@Html.Raw(ViewBag.someDataJson)");
        alert(someData.Message);
    });
</script>
Run Code Online (Sandbox Code Playgroud)

将导致:

var someData = $.parseJSON("{"Message":"let's try <b> this </b> and this \" "}");
Run Code Online (Sandbox Code Playgroud)

哪个不对.也没有Html.Raw()结果也将是不正确的:

var someData = $.parseJSON("{&quot;Message&quot;:&quot;let&#39;s try &lt;b&gt; this &lt;/b&gt; and this \&quot; &quot;}");
Run Code Online (Sandbox Code Playgroud)

谢谢!

Ben*_*aum 6

这是一篇关于正是这样做的小博文.

它用 Json.Encode(someClass)

var someData = @Html.Raw(Json.Encode(yourViewModelCSharpObject))
Run Code Online (Sandbox Code Playgroud)

您将把实际对象传递给视图,而不是JSON字符串表示.

祝好运!