2017-10-10 45 views
1

我试图在我的网页中转换一些xml代码。所以我试图使用json.net。 所有的工作,直到我试图显示我的字符串你好。我的aspx.cs网站看起来是这样的:ASP.NET json.Net xml到json

aspx.cs

public partial class json : System.Web.UI.Page 
{ 
    public class Account 
    { 
     public string Name { get; set; } 
     public string Email { get; set; } 
     public DateTime DOB { get; set; } 
    } 

    public void Page_Load(object sender, EventArgs e) 
    { 
     Account account = new Account 
     { 
      Name = "John Doe", 
      Email = "[email protected]", 
      DOB = new DateTime(1980, 2, 20, 0, 0, 0, DateTimeKind.Utc), 
     }; 
     string hello = JsonConvert.SerializeObject(account, Formatting.Indented); 
     } 
} 

而且我的aspx网站看起来是这样的。

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="json.aspx.cs" Inherits="json" %> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
     <div><% = this.hello %></div> 
    </form> 
</body> 
</html> 

我该怎么做,我可以使用字符串“你好”。

感谢,并有一个美好的一天:d

+0

什么是你的错误或异常? –

+0

严重\t代码\t说明\t项目\t文件\t线\t抑制状态 错误\t CS1061“json_aspx”不包含“你好”的定义,并没有扩展方法“你好”,接受类型“json_aspx”的第一个参数可以发现(您是否缺少使用指令或程序集参考?)\t json – Doggo

回答

3

您没有访问你好变量。 您可以通过创建属性你好

像这样的事情

public class Account 
    { 
     public string Name { get; set; } 
     public string Email { get; set; } 
     public DateTime DOB { get; set; } 
    } 

    public string Hello { get; set; } 

    public void Page_Load(object sender, EventArgs e) 
    { 
     Account account = new Account 
     { 
      Name = "John Doe", 
      Email = "[email protected]", 
      DOB = new DateTime(1980, 2, 20, 0, 0, 0, DateTimeKind.Utc), 
     }; 
     this.Hello = JsonConvert.SerializeObject(account, Formatting.Indented); 
    } 

而且您的网页上解决这个问题,你可以把它叫做

<div><% = this.Hello %></div> 
+0

但是,为什么当它已经公开时我不能使用它。伟大的答案btw。 – Doggo

+0

这不是公开的。属性'string hello'在'Page_Load'方法的范围内,不属于'json'类本身。你的aspx页面没有看到它。你可以访问'json'类以及它的所有公共和受保护的属性和字段。 –