问题描述
我是 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 (将#修改为@)