使用Viewbag数据创建Javascript对象
我需要在javascript中创建一个对象发送给函数,但是这些信息来自我的viewbag使用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
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});
}