本文介绍了从动作传递的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查看
发布评论