从C#控制器中的列表创建Json对象

时间:2018-12-18 10:52:24

标签: c# jquery json model-view-controller

相当长时间以来,我一直在尝试从Controller MVC c#获取基于字符串列表定义的Json数据,但是没有运气。我认为我缺少一些愚蠢的东西,但是您能在这里指导我吗?

我有一个控制器函数返回一个分配了Viewbag的视图,如下所示:

   List<string> Brands;
        Brands = GlobalVariables.Brands.Where(m => m.brand_cd != "OOO" && m.brand_cd.Trim().ToLower().Equals(m.main_brand.Trim().ToLower()))
                 .OrderBy(m => m.brand_cd).Select(m => m.brand_cd.Trim()).Distinct().ToList();



        ViewBag.BrandList = Json(Brands); 

在我看来,我正在尝试将Json变量定义为

<script>
    var brandList = '@ViewBag.BrandList';
</script>

但这没有帮助。我得到一个字符串。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您正在分配一个JsonResult对象,并希望得到一个JSON字符串,不是这种情况。

要将实际的JSON放入ViewBag中,您将需要序列化对象并将其放置在ViewBag中。

使用Newtonsoft.Json NuGet软件包的示例,该软件包相当标准:

string myJsonString = JsonConvert.SerializeObject(Brands);
ViewBag.BrandList = myJsonString;

在视图中:

<script>
    var brandList = @ViewBag.BrandList;
</script>