【问题标题】:Showing .net object from al class on a .cshtml page在 .cshtml 页面上显示来自 al 类的 .net 对象
【发布时间】:2016-08-24 13:42:57
【问题描述】:

我是 .NET 的新手,我正试图在我的 .cshtml 页面上显示我的 json,但我不知道如何将它放在那里。我还想测试这个类返回什么,因为我不知道它是否会工作,因为我从我的本地主机 java ee 后端获取 json。我正在使用 MVC 模板。

class Evaluatie
{
    static void Main(string[] args)
    {
        var client = new WebClient();
        var response = client.DownloadString(new Uri("http://localhost:8080/projecten/api/leerlingen"));

        var j = JsonConvert.DeserializeObject<Leerling>(response);
    }

    public class Leerling
    {
        public string inschrijvingsNummer { get; set; }
        public string naam { get; set; }
        public string email { get; set; }
        public string evaluatieNummer { get; set; }
    }
}

.cshtml 页面如下所示

@{
    ViewBag.Title = "Evaluaties";
}
<h2>@ViewBag.Title.</h2>

这是我的 json:

[{"inschrijvingsNummer":"0001","naam":"Joske Vermeulen","email":"joske.vermeulen@hotmail.be","evaluatieNummer":"270"},
{"inschrijvingsNummer":"0002","naam":"Kamiel Spiesses","email":"Kamiel.spiesses@gmail.com","evaluatieNummer":"370"}]

【问题讨论】:

  • 你在使用 MVC 吗?你能展示你的控制器代码或者你是如何渲染视图的吗?
  • 渲染视图的控制器在哪里?
  • 我认为你可以使用JsonResult类型的方法来代替ActionResult
  • 一个问题是您的 json 用于对象列表,但您正试图反序列化单个对象。您需要将反序列化代码更改为 var j = JsonConvert.DeserializeObject>(response);
  • 嗯,我不知道如何使用我的 Evaluatie.cs 中的代码将它放在我的 about.cshtml 上,我是否将它放在控制器中?我使用另一个控制器吗?我需要什么才能让它工作?

标签: .net json asp.net-mvc razor


【解决方案1】:

向 HomeController 添加一个方法。

    public JsonResult TestJson()
    {
        var client = new WebClient();
        var response = client.DownloadString(new Uri("http://localhost:8080/projecten/api/leerlingen"));

        var someObject = JsonConvert.DeserializeObject<List<Leerling>>(response);

        return new JsonResult() {Data = someObject, JsonRequestBehavior = JsonRequestBehavior.AllowGet};
    }

这将反序列化您的 json 并在 JsonResult 中重新序列化它。这可以通过您的路径 /home/TestJson 访问。

如果你只想在 About 视图中查看 json 字符串

    public ActionResult About()
    {
        ViewBag.Message = "Your application description page.";

        var client = new WebClient();
        ViewBag.Json = client.DownloadString(new Uri("http://localhost:8080/projecten/api/leerlingen"));

        return View();
    }

然后像这样在 About 视图中调用 ViewBag

<p>@ViewBag.Json</p>

【讨论】:

  • 非常感谢!现在我需要尝试解析它,让它看起来更好,然后我需要添加 2 个用户角色,所以不是每个人都能看到它,不知道该怎么做,但我会尝试。还是非常感谢你。
猜你喜欢
  • 2023-03-05
  • 2012-11-21
  • 1970-01-01
  • 2021-05-02
  • 1970-01-01
  • 2019-05-11
  • 2016-07-14
  • 2021-08-31
  • 1970-01-01
相关资源
最近更新 更多