c# repater from JSON without class

问题描述

我是 C# 新手,我有基本的 vb 知识,所以我还在学习。

问题是:我有一个带有一些 var(姓名、tlf、电子邮件)的 json,我阅读并展示了一个中继器。 在 VB 中,我可以使用 newtonsoft 读取它,然后绑定到转发器,无需创建具有此类属性的类。

但在 c# 中,我必须创建一个类才能使其工作。

这是我想念的东西吗?谢谢

private class JsonFooterDatos
    {
        private string name;
        private string tlf;
        private string email;        

        public string Name{ get {return name; }}
        public string Tlf { get {return tlf; }}
        public string Email { get {return email; }}
    }
    public void RellenarFooter()
    {
        LecturaXML.Apartado apartado = new LecturaXML.Apartado();
        LecturaXML.LeerApartadoXML("2530",ref apartado);

        if (apartado.Id != "")
        {
            var result = JsonConvert.DeserializeObject<Newtonsoft.Json.Linq.JToken>(apartado.Html);
            dirFooter.DataSource = result;
            dirFooter.DataBind();
        }
    }
protected void DirFooterProvincia(object sender,RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
//

HERE WHY I HAVE TO CAST TO THIS CLASS IN C# BUT NOT IN VB

 -->> //           var di = (JsonFooterDatos)e.Item.DataItem;
//IF I DONT DO THE CAST e.Item.DataItem.email WILL FAIL WITH CS1061 BUT IN VB IT WORKS
            if (di.Name.ToString().toupper() != di.Email.ToString().toupper())
                e.Item.FindControl("Provincia").Visible = true;
        }
    }

有效的 VB 代码

  Sub RellenarFooter()
        Dim apartado As LecturaXML.Apartado = New LecturaXML.Apartado
        LecturaXML.LeerApartadoXML("2444",apartado)

        If apartado.Id <> "" Then
            Dim result = JsonConvert.DeserializeObject(Of Linq.JToken)(apartado.Html)
            dirFooter.DataSource = result
            dirFooter.DataBind()
        End If
    End Sub
    Protected Sub DirFooterProvincia(sender As Object,e As RepeaterItemEventArgs)
        If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem Then
            If e.Item.DataItem("email").ToString.toupper <> e.Item.DataItem("name").ToString.toupper Then
                e.Item.FindControl("Provincia").Visible = True
            End If
        End If
    End Sub

JSON

[
    {
        "Name": "OFICINA DE EMPRESAS 1","Tlf": "947 11 11 11 ","Email": "xx@xx.com"
    },{
        "Name": "OFICINA DE EMPRESAS 2",{
        "Name": "OFICINA DE EMPRESAS 3","Email": "xx@xx.com"
    }
]

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)