2014-07-11 148 views
0

有得到一個Razor視圖渲染視圖模型與嵌入式IEnumerable我碰到下面此帖一問題後: View Model IEnumerable<> property is coming back null (not binding) from post method?ASP.NET MVC模板編輯器不工作

我實現了使用編輯器模板建議的解決方案,但我查看只顯示嵌入IEnumerable中的第一個屬性。我實現了上述帖子中的兩個解決方案,但是使用EditorFor模板的解決方案並不適合我。我的視圖僅顯示ID屬性。

有沒有人有任何想法,爲什麼與編輯器模板soution可能不適合我的設置?我完全按照建議來實施它。

+3

實際上請包括您的設置的一些代碼。否則,我們只是在做出假設。 –

+1

不,不知道...因爲你沒有包含任何代碼。 –

+0

所有的代碼都在原文中......不是指剪切和粘貼它。正如我所說我實施了兩個建議的解決方案帶有for循環的人工作,但編輯模板只顯示enumerable屬性的第一個屬性。無論如何,我將繼續討論for循環,並想知道編輯器模板爲什麼不起作用。 – Creggdev

回答

1

如果您的視圖僅顯示第一個項目,那麼您的模板沒有被拾取到EditorTemplates文件夾中。

定義模板在EditorFor擴展方法象下面這樣:

@Html.EditorFor(model => model, "NameofEditorTemplate") 
+0

「@ Html.Editor」,請更正錯字。 –

+0

「@ Html.EditorFor」,請更正錯字 –

0

對於使用編輯器模板考慮以下提示

  1. 你必須把裏面EditorTemplates文件夾中的模板 瀏覽次數文件夾。
  2. 您應該使用EditorFor HTML輔助函數調用合適的模板 (當你有特定的模式來查看,它會自動找到所需 模板,否則你已經暗示發動機, 無論是由論點EditorFor或使用[UIHint]在模型屬性 。看看Extending Editor Templates for ASP.NET MVC
  3. 內使用像string模板簡單的模型,DateTime?
  4. 對於IEnumerable型號爲模板,可考慮提供一個非常重要的祕訣在EditorFor IEnumerable with TemplateName