从动作传递的Json通过ViewBag查看 [英] Passing Json from action to view by ViewBag

查看:1158
本文介绍了从动作传递的Json通过ViewBag查看的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图让下面使用的结果 JsonResult ,但我不能

I'm trying to get the result below using JsonResult, but I can't

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" ]}
        ];

我应该怎么做才能解决?

What should I do to resolve that?

推荐答案

我假设你想获得 x.Value 在JSON?然后,你的 retValue 分配改为

I assume you want to get x.Value for value in JSON? Then change your assignment for retValue to

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

在你的 retValue 分配code你创建匿名类型的单个对象,数组类型的会员ID,标签和值。对于你想你需要创建一个阵列的输出,其中每个部分是用简单的域ID,名称和值的对象。

In your retValue assignment code you were creating a single object of anonymous type with array-typed members id, label and value. For the output you want you need to create an array, each member of which is an object with simple fields id, name and value.

这篇关于从动作传递的Json通过ViewBag查看的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆