2

ビューで次のコードを使用しています。警告ボックスがjson値として表示されます。代わりに、これらのjson値をコードに配置する必要があります。

    var option = @Html.Raw(Json.Encode(ViewData["choice"]));
    alert(JSON.stringify(option.Data)); 


    var data = [

        {

            values:/* here i need data*/

        }];

    var chart;                                

そのnvd3棒グラフアプリケーションは、mVCコントローラーからビューにjsonを変換して渡す方法を教えてください。

これが私のコードです。このコードの何が問題なのかわかりません。

         <script type="text/javascript">

  var option = @Html.Raw(Json.Encode(ViewData["choice"]));

   var chart;
   var data=[{
    values: [

     @foreach(var item in option)
        {  
            <text>
            { 
                   "FullName": "@item.myfield1" ,
                   "ID": @item.myfield2
            } ,
            </text>
        }
       ]
      }];
    nv.addGraph(function () {
    var chart = nv.models.multiBarHorizontalChart()
      .x(function (d) { return d.FullName })
     .y(function (d) { return d.ID })
     .margin({ top: 30, right: 10, bottom: 50, left: 500 })
     .showValues(true)
      .tooltips(false)
          .showControls(false);

    chart.yAxis
   .tickFormat(d3.format(','));

    d3.select('#chart svg')
   .datum(data)
   .transition().duration(500)
   .call(chart);

    nv.utils.windowResize(chart.update);
    return chart;
    });

   </script>
4

2 に答える 2

1

単純にあなたは次のようにすることができます。

<script type="text/javascript">
...
var option = @Html.Raw(Json.Encode(ViewData["choice"]));
var chart;
var data=[
{
    values: option
 }];
...
</script>

コントローラでは、JSONデータを取得するためにこのようにする必要があります。

ViewData["choice"] = Json(listData).Data;

* listDataは、データを含むリストの名前です。

于 2013-03-05T12:26:04.827 に答える
0

私はあなたがこのようなことをしたいと思います。

<script>
    .....
    var data=[{
    key:"My Key for Chart", 
     values: [
    @foreach(var item in option)
    {
    <text>
    { 
               "label" : "@item.myfield1" ,
               "value" : @item.myfield2
    } ,
    </text>
    }
    ]

    }];

    .....
</script>

お役に立てれば。

于 2013-03-05T07:25:19.597 に答える