我嘗試在Webgrid中顯示列表,但該視圖只顯示一列並且不管我做了什麼我似乎無法讓它顯示其他列(我的模型有3個屬性,其中一個是複雜的,包含4個屬性,所以我期望6列)。MVC Webgrid只顯示1個模型列
查看:
@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; }
}
最後這裏是控制器最簡單的索引操作:
public ActionResult Index(int? id)
{
return View(db.Factors.ToList());
}
該模型包含預期的47行因子對象,包括從因子(因子類型,ID和TraitVector)中定義的所有屬性,從數據庫表中讀取並由動作傳遞給視圖,但僅在生成的Html中出現ID列。
可能值得注意的是,模型Factor在單獨的DLL中定義,並且在DB中所有數據字段都有值(無空值)。
任何人都可以爲我解決這個問題嗎?