2017-03-28 4 views
0

JavaScriptを使ってファンクションに送信するオブジェクトを作成する必要がありますが、この情報は自分のビューバッグから来ています。私はそれが間違っている知っているが、病気に試してみて、私が望んでいるかを説明するためにそれを追加私のviewBagインサイドViewbagデータでJavascriptオブジェクトを作成する

new FleetSelector("False", 
[{"OwnerId": "2df3893d-c406-48fe-8443-1622ddc51af2", "DisplayName": "String 1" }, 
{ "OwnerId": "7A402CD7-5EEA-4AF5-80A3-22EED0610C9D", "DisplayName": "String 2" }]); 

私は、のGuid OwnerIdにして文字列ownernameにしている艦隊モデル一覧を持っている、これは私が試したものです、達成する

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

答えて

1

あなたはFleetSelectorオブジェクトのarray外を移入する必要があります。ここで

new FleetSelector("False",array); 

は、配列定義である:

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

このようにシリアル化することができます。

SerializeObjectメソッドは、C#オブジェクトのjson文字列表現である文字列を返します。

var fleetsArray= @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(ViewBag.Fleets)) 
console.log(fleetsArray); 
+0

私はこのエラーを取得し 'たObjectContextインスタンスが配置されており、もはや –

+1

は、あなたが設定されている方法によって異なりconnection.'が必要な操作のために使用することはできません'ViewBag.Fleets'です。あなたのコードで 'ToList()'を使ってLINQ式を実行する必要があります。 – Shyju

関連する問題