2017-03-17 73 views
0

我有這樣的觀點,我發現我必須使用@ Html.EditorFor將值傳遞給列表,如果我使用@ Html.DisplayFor,該值不會通過,我怎麼能將值傳遞給列表使用的東西而不是@ Html.EditorFor如何在不使用EditorFor的情況下將值傳遞給列表?

@model IList<TRecord> 
@using (Html.BeginForm()) 
{ 
    // display names area 

    @for (var i = 0; i < Model.Count; i++) 
    { 
     <tr> 
      <td> 
       @Html.DisplayFor(item => item[i].Tid) 
      </td> 
      <td> 
       @Html.EditorFor(item => item[i].Tname) 
      </td> 
     </tr> 
    } 

    // submit button area 
} 
+1

你是什麼意思_without使用EditorFor()_?例如,您可以使用'TextBoxFor()'。你想實現什麼? –

+0

嗨,親愛的@Stephen,我想只顯示值項[i] .Tid,並且我還需要將值傳遞給控制器​​... –

+3

然後使用@@ Html.TextBoxFor(m => m [i] .Tname,new {@readonly =「readonly」})'(或'DisplayFor()'與'HiddenFor()'一起使用)。但是,這有什麼意義 - 如果你沒有編輯這個值,那麼你不應該把它發回去(在你的POST方法中,你再次獲得數據,只更新你需要的屬性) –

回答

1

你的意思是它不能被編輯?

如果是這樣,試試這個。

@Html.TextBox(item => item[i].yourObject, new { @readonly = "readonly" }) 
+1

這甚至不會編譯。它肯定不會添加「disabled」屬性。即使你糾正了代碼這樣做,禁用的表單控件也不會提交一個無意義的值(你可以使用'DisplayFor()') –

+0

我想將項目[i] .yourObject傳遞給控制器但只顯示,我不需要編輯,並且需要傳遞給控制器​​,因爲當我使用EditorFor時,它將顯示一個文本框,並且我只想顯示值@Farid –

+0

@Farid。再次 - 禁用控件不提交值! –

相關問題