【问题标题】:What are the possible ways to retrieve json values in MVC view?在 MVC 视图中检索 json 值的可能方法是什么?
【发布时间】:2013-03-05 07:04:04
【问题描述】:

我在我的视图中使用以下代码,它提供了一个警告框作为 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 条形图应用程序,请帮助我,或者给我一些方法来转换和传递 json 从 mVC 控制器到查看。

这是我的代码,我无法弄清楚这段代码有什么问题,

         <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>

【问题讨论】:

  • 是 ASP 吗?请参阅mvc 上的标记 wiki 以获取更多信息并适当标记。

标签: javascript json model-view-controller nvd3.js


【解决方案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 是包含您的数据的列表的名称。

【讨论】:

    【解决方案2】:

    我假设你想做this之类的事情。

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

    希望这会有所帮助。

    【讨论】:

    • 您好 e2burner 我在视图“当前上下文中不存在名称 'option' ”中收到此错误
    • 刚刚编辑了代码,请确保在渲染图表之前放置代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 2014-07-14
    • 1970-01-01
    相关资源
    最近更新 更多