【发布时间】:2013-09-20 14:08:01
【问题描述】:
我尝试在 Webgrid 中显示一个列表,但 视图只显示一列,无论我做什么,我似乎都无法让它显示其他列(我的模型有 3属性,其中一个很复杂,包含 4 个属性,所以我希望有 6 列)。
查看:
@model IEnumerable<AIM.Police.DB.Factor>
@using AIM.Police.DB
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<div class="float-right">
@{
var grid = new WebGrid(Model);
}
@grid.GetHtml()
</div>
我向视图传递了一个因子列表,定义为:
public class Factor
{
public Factor()
{
this.TraitVector = new TraitVector();
}
[Key]
[Column(Order=0)]
public FactorTypesEnum FactorType { get; set; }
[Key]
[Column(Order = 1)]
public int ID { get; set; }
public TraitVector TraitVector { get; set; }
}
FactorTypesEnum 和 TraitVector 定义为:
public enum FactorTypesEnum
{
StimulusType = 1,
OffenseType,
InterrogationStage,
InterrogeeStatus,
ZoneOfRelevance,
InterrogationExperience,
InterrogationCount
}
[ComplexType]
public class TraitVector
{
public double AttentionState { get; set; }
public double AffectState { get; set; }
public double AttitudeState { get; set; }
public double AffiliationState { get; set; }
}
最后是Controller最简单的Index动作:
public ActionResult Index(int? id)
{
return View(db.Factors.ToList());
}
模型包含预期的 47 行 Factor 对象,包括为 Factor 定义的所有属性(FactorType、ID 和 TraitVector),从 DB 表中读取并通过 Action 传递给 View,但是在生成的 Html 中只有 ID列。
值得注意的是,模型 Factor 是在一个单独的 DLL 中定义的,并且在 DB 中所有数据字段都有值(无空值)。
谁能帮我解决这个问题?
【问题讨论】:
标签: asp.net-mvc-4 webgrid