這很莫名其妙。爲簡單起見,想象一個帶有.Employees可枚舉屬性的公司實體。我在其他地方看到的,這樣的伎倆來獲得EditorTemplates理智呈現枚舉接口是使用語法如下:EditorFor not rendering enumerable without @foreach
在Index.cshtml:
@Html.EditorFor(company => company.Employees, "EmployeeEditorTemplate")
EmployeeEditorTemplate.cshtml預計單個員工:
@model MyNamespace.Models.Employee
//...
@Html.EditorFor(x => x.FullName)
// ...etc.
帖子像這樣的:Viewmodels List Is Null in Action ...表明ModelBinder的是足夠聰明,找出結合和在飛行中索引枚舉。我得到不同的結果(我期望到底是什麼,如果ModelBinder的不應該是這樣mageriffic):
The model item passed into the dictionary is of type
System.Collections.Generic.List`1[MyNamespace.Models.Employee]',
but this dictionary requires a model item of type
'MyNamespace.Models.Employee'.
枚舉它自己呈現收集就好了,但發出相同的ID,每行的控制(這是不是最佳的,當然,但它告訴我EditorTemplate按照功能):
@foreach (var item in Model.Employees)
{
@Html.EditorFor(x => item, "EmployeeEditorTemplate")
}
這種結構也沒有張貼company.Employees收集回我的其他控制器的動作。
關於實現以下要求的任何想法?
- 渲染子集,每個實例唯一ID列表
- 後孩子收集回來的模型
我不在乎,如果我必須枚舉它自己,也不管它位於EditorTemplate的內部或外部;我剛剛看到它說這是不必要的,如果你讓它處理事情,MVC的效果會更好。謝謝。
我有確切的問題,我有一個名爲Children(名錄)的集合,我的編輯器名稱應該是什麼?什麼是對流? –