【问题标题】:Passing Json from action to view by ViewBag通过 ViewBag 将 Json 从操作传递到视图
【发布时间】:2011-12-08 07:30:21
【问题描述】:

我正在尝试使用JsonResult 得到下面的结果,但我做不到

var localJSON = [

            { "id": "1", "label": "tagName1", "value": "tagValue1" },
                { "id": "2", "label": "tagName2", "value": "tagValue2" },
                { "id": "3", "label": "tagName3", "value": "tagValue3" },
                { "id": "1553", "label": "tagName1553", "value": "tagValue1553" }
    ];

这是我的使用方式:

控制器

private JsonResult GetAvailableTags()
        {
            var tagsList = Facade.Tags.Get(CurrentLocale.ID);
            var retValue = new
            {
                id = tagsList.Select(x => x.ID).ToArray(),
                label = tagsList.Select(x => x.Name).ToArray(),
                value = tagsList.Select(x => x.Name).ToArray()
            };
            return Json(retValue);
        }
public ActionResult AddPhoto()
        {

            var availblableTags = GetAvailableTags();
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            ViewBag.AvailableTags = serializer.Serialize(availblableTags.Data);
            return View();
        }

查看

var localJSON = [ @Html.Raw(ViewBag.AvailableTags)];

结果是

var localJSON = [
   {"id":[1,2,3,1553],"label":["tagName1","tagName2","tagName3","tagName1553" ],"value":["tagName1","tagName2","tagName3","tagName1553" ]}
        ];

我应该怎么做才能解决这个问题?

【问题讨论】:

    标签: json asp.net-mvc-3 jsonresult


    【解决方案1】:

    我假设您想在 JSON 中为 value 获取 x.Value?然后将retValue 的分配更改为

    var retValue = tagsList.Select(
        x => new 
        { 
            id = x.Id, 
            label = x.Name, 
            value = x.Value 
        }).ToArray();
    

    在您的 retValue 分配代码中,您创建了一个匿名类型的单个对象,其中包含数组类型的成员 id、标签和值。对于您想要的输出,您需要创建一个数组,其中的每个成员都是一个具有简单字段 id、name 和 value 的对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-09
      • 2015-01-21
      • 1970-01-01
      • 2013-12-20
      • 1970-01-01
      • 2020-10-18
      • 1970-01-01
      相关资源
      最近更新 更多