使用剃刀将Json数据从控制器获取到视图

时间:2018-07-08 00:51:02

标签: c# asp.net asp.net-mvc web razor

我需要从控制器中的函数获取json数据: 我知道有很多方法  我正在尝试其中之一,但现在无法正常工作

    private UserViewModel GetUsers()
    {
        UserViewModel vm = new UserViewModel();
        if (Session["Data"] == null)
        {
            var json = @"{
                  '$id': '1',
                  'Users': [

                    {
                      '$id': '7',
                      'RoleCode': 3,
                      'RoleDescription': 'משתמש רגיל',
                      'Id': '336387519',
                      'Username': 'ראובן',
                      'Email': 'reuven@gmail.com',
                      'Phone': '0504445588',
                      'IsTemporaryPassword': false,
                      'IsActive': true,
                      'CreateDate': '2017-06-13T00:00:00',
                      'LastUpdateDate': '2017-06-13T00:00:00'
                    }
                  ],
                  'Messages': []
                }";

            vm = Newtonsoft.Json.JsonConvert.DeserializeObject<UserViewModel>(json);

            Session.Add("Data", vm);
            ViewBag.jsonData = json;

        }
        else
        {
            vm = (UserViewModel)Session["Data"];
            vm.Users = vm.Users.OrderBy(x => x.Id).ToList();
        }
        return vm;

    }
}

在我编码的视图中:

@model IEnumerable<UserViewModel>
                    @foreach(var users in Model)
{
    <p>@UserViewModel.json</p>
}

有什么建议吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我试图理解您的代码,但是不清楚 GetUsers 是在控制器中还是在服务类中,顺便说一下,您添加了这一行

ViewBag.jsonData = json;

,并且在您的视图中尝试以错误的方式显示json数据:

@UserViewModel.json

在您的视图中添加此行,以便您可以看到json值:

<p>@ViewBag.jsonData</p>