2014-07-09 32 views
0

我有一小段代碼在這裏:MVC剃刀工作不正常,顯示不正確的文本框值

查看:

@foreach (var lines in Model.KVpairs) 
{ 
    @Html.TextBoxFor(m => lines, new { placeholder = lines }) 
} 

在我的應用程序,我加載包含兩次這段代碼視圖,第一時間,它按預期工作,第二次,所有文本框的值都是相同的值,但佔位符都是不同的。或換句話說,佔位符按預期工作,但值(框內的實際文本)不是。

我是否錯過了一些非常明顯的東西?

編輯:

想添加一些圖片:

之前,我透過形式,IVE進入這些值 before I sumbit the form, ive entered these values

在這裏你可以看到KVpairs值 Here you can see the values of the KVpairs

這就是我提交表格後得到的結果 And this is the result I get after form submission

而這些提交 And these are the placeholders after the submission

+0

可提供服務器端代碼? –

+0

我不相信服務器端代碼會增加很多問題,我將返回一個包含foreach循環的部分視圖,並將其傳遞給一個包含KVpairs的模型。我相信問題在於htmlhelper,如果這意味着使用Ajax加載這個視圖。 – Android

回答

1

而不是foreach循環嘗試使用了這樣的循環之後的佔位符:

@for (var i = 0; i < Model.KVpairs.Count(); i++) 
{ 
    @Html.TextBoxFor(m => Model.KVpairs[i], new { placeholder = lines }) 
} 
+0

我想我應該提到KVpairs是一個List。這是否會以任何方式改變你的答案? – Android

+1

謝謝你的幫助,我甚至在這裏找到了更全面的答案:http://stackoverflow.com/questions/8894442/mvc-razor-view-nested-foreachs-model – Android

+0

它不會改變我的答案,原因它必須以這種方式完成是因爲分配給助手呈現的元素的ID和NAME標記。爲了讓這些人正確地綁定到你的模型,你必須在索引中使用for循環。無論如何,你鏈接的答案指出... – Marko