0

我正在尝试使用以下结果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" ]}
        ];

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

4

1 回答 1

1

我假设你想在 JSON中x.Value获得?value然后将您的作业更改retValue

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

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

于 2011-12-08T07:32:35.407 回答