Asp.net mvc 4 使用WebGrid显示电子邮件地址(字符串)列表-ASP.Net MVC4
我声明WebGrid如下所示:Asp.net mvc 4 使用WebGrid显示电子邮件地址(字符串)列表-ASP.Net MVC4,asp.net-mvc-4,webgrid,Asp.net Mvc 4,Webgrid,我声明WebGrid如下所示: @{ WebGrid grid = null; if (Model.EmailAddressesOfChosenClient.Count<string>() != 0) { grid = new WebGrid(Model.EmailAddressesOfChosenClient, ajaxUpdateContainerId: "gridContent"); } } @{ WebGrid=null; i
@{
WebGrid grid = null;
if (Model.EmailAddressesOfChosenClient.Count<string>() != 0)
{
grid = new WebGrid(Model.EmailAddressesOfChosenClient, ajaxUpdateContainerId: "gridContent");
}
}
@{
WebGrid=null;
if(Model.EmailAddressesOfChosenClient.Count()!=0)
{
grid=新的WebGrid(Model.EmailAddressesOfChosenClient,ajaxUpdateContainerId:“gridContent”);
}
}
然后,我尝试按如下方式呈现WebGrid,而不指定任何列:
<div id="gridContent">
@{ if (grid != null)
{
@grid.GetHtml()
}
}
</div>
@{如果(网格!=null)
{
@grid.GetHtml()
}
}
模型的My EmailAddressesOfChosenClient属性是IEnumerable of strings,其中每个字符串都是一个电子邮件地址。我希望WebGrid包含一个标题为“Email Address”的列,后跟一行行Email Address字符串
但是,如果以这种方式呈现,我的WebGrid将显示列标题“Length”,行包含每个电子邮件地址字符串的长度
为什么呢?如何配置内容,以便在行和列标题中显示电子邮件地址?非常感谢
为什么呢
因为如果不显式指定列,辅助对象将使用反射检查类型的公共属性并自动为其生成列。因此,System.String
具有.Length
公共属性,因此您可以得到一列
您需要使用自定义列:
@grid.GetHtml(
columns: grid.Columns(
grid.Column("email", format: item => item)
)
)
或者,您可以定义一个视图模型,并让您的
IEnumerable
使用此视图模型而不是字符串。***您是一个明星***