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 に答える