使用Viewbag数据创建Javascript对象

使用Viewbag数据创建Javascript对象,javascript,arrays,asp.net-mvc,viewbag,Javascript,Arrays,Asp.net Mvc,Viewbag,我需要在javascript中创建一个对象发送给函数,但是这些信息来自我的viewbag new FleetSelector("False", [{"OwnerId": "2df3893d-c406-48fe-8443-1622ddc51af2", "DisplayName": "String 1" }, { "OwnerId": "7A402CD7-5EEA-4AF5-80A3-22EED0610C9D", "DisplayName": "String 2" }]); 在我的viewBag

我需要在javascript中创建一个对象发送给函数,但是这些信息来自我的viewbag

new FleetSelector("False",
[{"OwnerId": "2df3893d-c406-48fe-8443-1622ddc51af2", "DisplayName": "String 1" }, 
{ "OwnerId": "7A402CD7-5EEA-4AF5-80A3-22EED0610C9D", "DisplayName": "String 2" }]);
在我的viewBag中,我有一个Fleets模型列表,其中有一个Guid OwnerId和一个字符串ownerName,这是我尝试过的,我知道这是错误的,但我会添加它来尝试并解释我希望实现的目标

new FleetSelector("False",
                    [ @foreach (var fleet in ViewBag.Fleets)
                    {
                        '{' + '"' + "OwnerId" + '"' + ':' + '"' + fleet.OwnerId + '"' + ',' + '"' + "DisplayName" + '"' + ':' + '"' + fleet.ownerName + '"' + '}'
                    }  }]);

您可以像这样序列化它

SerializeObject
方法返回一个字符串,该字符串是C#对象的json字符串表示形式


您必须在
FleetSelector
对象外部填充
array

new FleetSelector("False",array);
以下是数组定义:

var array=[];
@foreach (var fleet in ViewBag.Fleets)
{
   @:array.push({"OwnerId":@fleet.OwnerId,"DisplayName":@fleet.ownerName});
}

我收到此错误
ObjectContext实例已被释放,无法再用于需要连接的操作。
取决于您如何设置
ViewBag.Fleets
。您可能需要在代码中使用
ToList()
调用来执行LINQ表达式。
var array=[];
@foreach (var fleet in ViewBag.Fleets)
{
   @:array.push({"OwnerId":@fleet.OwnerId,"DisplayName":@fleet.ownerName});
}