Asp.net mvc 3 WebGrid中的复杂类型
令人惊讶的是,我最近3个小时一直在互联网上搜索如何从作为数据源的复杂类型绑定webgrid列。但我找不到任何有用的信息。 有一个主题,但它在我的场景中不起作用 为了简化它,假设我有一个填充WebGrid的Employee对象列表,每个Employee都有Address属性,即Address类型 我想在WebGrid中显示Address字段的City属性以及Employee的其他字段 我假设grid.Column(“Address.City”)可以工作,但事实并非如此。这是不受支持的,还是我做错了什么 谢谢你的帮助 问候Asp.net mvc 3 WebGrid中的复杂类型,asp.net-mvc-3,razor,webgrid,Asp.net Mvc 3,Razor,Webgrid,令人惊讶的是,我最近3个小时一直在互联网上搜索如何从作为数据源的复杂类型绑定webgrid列。但我找不到任何有用的信息。 有一个主题,但它在我的场景中不起作用 为了简化它,假设我有一个填充WebGrid的Employee对象列表,每个Employee都有Address属性,即Address类型 我想在WebGrid中显示Address字段的City属性以及Employee的其他字段 我假设grid.Column(“Address.City”)可以工作,但事实并非如此。这是不受支持的,还是我做错了
无政府主义极客这是我在ASP.NET论坛上得到的答案,我想在这里发布,以防其他人需要 线程链接是 并且该解决方案是(经过测试的):
@函数{
公营雇员
{
公共字符串名称{get;set;}
公共广播地址{get;set;}
}
公共课堂演讲
{
公共字符串City{get;set;}
}
}
@{
var myClasses=新列表{
新员工{Name=“A”,地址=新地址{City=“AA”},
新员工{Name=“B”,地址=新地址{City=“BB”},
新员工{Name=“C”,Address=新地址{City=“CC”},
新员工{Name=“D”,地址=新地址{City=“DD”},
};
var grid=新的WebGrid(来源:myClasses);
}
@grid.GetHtml(
列:grid.columns(grid.Column(“Address.City”,标题:“City”),grid.Column(“Name”))
我希望它能帮助别人
干杯。这是我在ASP.NET论坛上得到的答案,我想在这里发布,以防其他人需要 线程链接是 并且该解决方案是(经过测试的):
@函数{
公营雇员
{
公共字符串名称{get;set;}
公共广播地址{get;set;}
}
公共课堂演讲
{
公共字符串City{get;set;}
}
}
@{
var myClasses=新列表{
新员工{Name=“A”,地址=新地址{City=“AA”},
新员工{Name=“B”,地址=新地址{City=“BB”},
新员工{Name=“C”,Address=新地址{City=“CC”},
新员工{Name=“D”,地址=新地址{City=“DD”},
};
var grid=新的WebGrid(来源:myClasses);
}
@grid.GetHtml(
列:grid.columns(grid.Column(“Address.City”,标题:“City”),grid.Column(“Name”))
我希望它能帮助别人
干杯。我不知道你的答案是如何解决问题的,直到我意识到我缺少的是,有时属性可以为null,但不是null引用错误,而是错误列“Address.City”不存在。除非您在format属性中检查null
@函数{
公营雇员
{
公共字符串名称{get;set;}
公共广播地址{get;set;}
}
公共课堂演讲
{
公共字符串City{get;set;}
}
}
@{
var myClasses=新列表{
新员工{Name=“A”,地址=新地址{City=“AA”},
新员工{Name=“B”,地址=新地址{City=“BB”},
新员工{Name=“C”,地址=新地址{City=null},
新员工{Name=“D”,地址=null},
};
var grid=新的WebGrid(来源:myClasses);
}
@grid.GetHtml(
columns:grid.columns(grid.Column(“Address.City”),
标题:“城市”,
格式:@@if(item.Address!=null)
{@item.Address.City}
),
grid.Column(“名称”))
我不知道您的答案是如何解决问题的,直到我意识到我缺少的是,有时属性可以为null,但您得到的错误列“Address.City”不存在,而不是null引用错误。除非您在format属性中检查null
@函数{
公营雇员
{
公共字符串名称{get;set;}
公共广播地址{get;set;}
}
公共课堂演讲
{
公共字符串City{get;set;}
}
}
@{
var myClasses=新列表{
新员工{Name=“A”,地址=新地址{City=“AA”},
新员工{Name=“B”,地址=新地址{City=“BB”},
新员工{Name=“C”,地址=新地址{City=null},
新员工{Name=“D”,地址=null},
};
var grid=新的WebGrid(来源:myClasses);
}
@grid.GetHtml(
columns:grid.columns(grid.Column(“Address.City”),
标题:“城市”,
格式:@@if(item.Address!=null)
{@item.Address.City}
),
grid.Column(“名称”))
@functions{
public class Employee
{
public string Name { get; set; }
public Address Address { get; set; }
}
public class Address
{
public string City { get; set; }
}
}
@{
var myClasses = new List<Employee>{
new Employee { Name="A" , Address = new Address{ City="AA" }},
new Employee { Name="B" , Address = new Address{ City="BB" }},
new Employee { Name="C" , Address = new Address{ City="CC" }},
new Employee { Name="D" , Address = new Address{ City="DD" }},
};
var grid = new WebGrid(source: myClasses);
}
@grid.GetHtml(
columns: grid.Columns(grid.Column("Address.City",header:"City"), grid.Column("Name")))
@functions{
public class Employee
{
public string Name { get; set; }
public Address Address { get; set; }
}
public class Address
{
public string City { get; set; }
}
}
@{
var myClasses = new List<Employee>{
new Employee { Name="A" , Address = new Address{ City="AA" }},
new Employee { Name="B" , Address = new Address{ City="BB" }},
new Employee { Name="C" , Address = new Address{ City=null }},
new Employee { Name="D" , Address = null},
};
var grid = new WebGrid(source: myClasses);
}
@grid.GetHtml(
columns: grid.Columns(grid.Column("Address.City",
header: "City",
format: @<text>@if (item.Address != null)
{@item.Address.City}
</text>),
grid.Column("Name")))