【问题标题】:How to send and use serialized object from code behind to JS?如何将序列化对象从后面的代码发送和使用到 JS?
【发布时间】:2017-08-08 17:09:28
【问题描述】:

我想将序列化对象从 C# 发送到 JS。 代码是:

var RegisteredUsers = new List<Person>();
        RegisteredUsers.Add(new Person() { PersonID = 1, Name = "Bryon Hetrick", Registered = true });
        RegisteredUsers.Add(new Person() { PersonID = 2, Name = "Nicole Wilcox", Registered = true });
        RegisteredUsers.Add(new Person() { PersonID = 3, Name = "Adrian Martinson", Registered = false });
        RegisteredUsers.Add(new Person() { PersonID = 4, Name = "Nora Osborn", Registered = false });

        var serializer = new JavaScriptSerializer();
        var serializedResult = serializer.Serialize(RegisteredUsers);

现在,

1)我如何将它发送到客户端?

2)我如何访问每个元素(即我想取具有 ID 的名称

谢谢。

【问题讨论】:

  • 这信息不足以回答。你在使用框架吗?您是否尝试过形成包含序列化数据的响应?
  • 您是在使用 ASP.NET 还是只是在运行控制台应用程序? MVC 或 WebAPI 怎么样?
  • @styfle 是的,我正在使用 ASP.NET。我在客户端做了“http.get”来获取数据。在服务器端,我准备了上面提到的所有数据。现在我该怎么办?

标签: javascript c# html javascriptserializer


【解决方案1】:

假设您将 MVC C# 与 Razor 一起使用:将 serializedResult 放入 ViewBag 中,然后使用 @Html.Raw 将其注入您的 JavaScript。我还没有测试过,所以如果它不起作用,请告诉我。

C#:

var serializedResult = serializer.Serialize(RegisteredUsers);
ViewBag.RegisteredUsers = serializedResult;

JS:

var myUsers = @Html.Raw(Json.Encode(ViewBag.RegisteredUsers));

编辑:看来您实际上是在使用 WebForms。他们没有 ViewBag 所以你必须在你的类中设置一个属性。

C#:

protected string Users { get; set; }

C#(在 Page_Load 或您创建列表的任何地方):

var serializedResult = serializer.Serialize(RegisteredUsers);
this.Users = serializedResult;

JS(WebForms 语法)

var myUsers = <%= Users %>

【讨论】:

  • 什么是 Razor?我应该导入什么(即使用)我是 WEB 世界的新手,如何使用“myUser”变量访问特定数据?
  • Razor 允许您在 HTML 中执行 C# 操作。如果您有 .cshtml 文件,则您正在使用 Razor。
  • 如果您有 .cshtml 文件,则不需要导入任何内容。 “访问”是指您想在页面上显示您的数据吗?
  • 我没有 cshtml 文件我有 aspx.cs 文件
  • 我忘了提到我已经编辑了我的答案。如果您觉得我的回答有帮助,请点赞!
猜你喜欢
  • 2023-04-07
  • 2012-09-29
  • 1970-01-01
  • 1970-01-01
  • 2013-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-02
相关资源
最近更新 更多