什么对象应该传递给serialize()和如何在Knockoutjs文件中使用ViewBag

本文关键字:Knockoutjs 文件 ViewBag 对象 serialize 什么 | 更新日期: 2023-09-27 18:14:27

我正试图使用字典从控制器发送数据到Knockoutjs,如下所述:在ASP之间发送和接收数据。. NET MVC和Knockout.js但我不明白我应该传递哪个属性来序列化。序列化(????)以及如何获得ViewBag。

问题1:

我应该在这里使用哪个对象?:

var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
        var Data = new Dictionary<String, Object>()
        {
            {"objName1", _objName1Service.GetAsync().Result},
            {"objName2", _objName2Service.GetAsync().Result},
        };
ViewBag.myData = serializer.Serialize(????);

问题2:

在Knockout.js中与此指令等价的是什么?

var myData = @Html.Raw(ViewBag.myData);

什么对象应该传递给serialize()和如何在Knockoutjs文件中使用ViewBag

使用一些库(如Json)序列化对象。. NET(由Rob G推荐)。

string output = JsonConvert.SerializeObject(yourObject); 

发送json对象到View,使用ViewBag

ViewBag.YourJsonObject = output;

将json对象打印到html隐藏字段

<input type="hidden" id="myHiddenField" value="@ViewBag.YourJsonObject" />

使用html hidden字段设置knockout的可观察对象

var myData = ko.observable($('#myHiddenField').val());