2013-01-10 27 views
0

嗨我有一個問題,獲得正確的ID和名稱時,我使用Ajax調用來獲取部分視圖。MVC模型活頁夾列表ID和名稱問題

我想要像「Blocks_0__Items_0__Id」這樣的ID。這些正在使用的循環,從而 主頁呈現:

@for (int blockIndex = 0; blockIndex < Model.Block.Count(); blockIndex++) { 

       @Html.EditorFor(model => Model.Blocks[blockIndex], "BlockView") 
      } 

,然後依次BlockView用來做相同的列表呈遞使用editorfor項目和。 for循環使ID和名稱正確。

但是,如果我想渲染項目模板作爲局部視圖,所有我會得到的是自然沒有塊和項目的一部分。

爲了解決這個問題,我打電話給一個空白的主頁,該頁面呈現一個總是有單個項目的塊。但這意味着無論我想通過ajax插入並且可以通過模型綁定器讀取,我必須創建2個額外的部分視圖!

解決方案2我以爲是使用 ViewData.TemplateInfo.HtmlFieldPrefix方法並進行設置。但是因爲我列出了一個列表,這是不可能的。我可以擺脫partialviews之一和使用: ViewData.TemplateInfo.HtmlFieldPrefix =「塊」

我看到一個MVC 1和2的HTML幫助呼籲: Html.BeginCollectionItem(「nameofitem」),但也不無更長的存在。

任何好主意?

回答

0

使用@ Html.TextBox(),而不是@ Html.EditorFor嘗試()

與@ Html.TextBox你可以通過它的名稱和值

@ Html.TextBox( 「WhateverNameYouWant」 ,Model.Blocks [blockIndex])