2011-10-11 51 views
1

我正在嘗試生成隱藏列表,因此我使用隱藏字段的名稱相同,但是Html.Hidden輸出的是現有值而不是新值。因此,這段代碼...爲什麼Html.Hidden不會生成具有相同名稱但值不同的隱藏字段

<% 
    for (int i = 0; i < Model.ProductIds.Count; i++) 
    { %> 
<%: Html.Hidden("ProductIds", Model.ProductIds[i], new { id=""})%> 
<br /> 
Iteration:<%:i %> 
Guid:<%:Model.ProductIds[i]%> 
<br /> 
<% } %> 

生成此HTML

<input name="ProductIds" type="hidden" value="48906f4c-1719-43ab-9d7e-c336a71b8624"> 
<br> 
Iteration:0 
Guid:48906f4c-1719-43ab-9d7e-c336a71b8624 
<br> 
<input name="ProductIds" type="hidden" value="48906f4c-1719-43ab-9d7e-c336a71b8624"> 
<br> 
Iteration:1 
Guid:b4f01496-dddf-41f2-a05b-43392d779a44 
<br> 

注意如何,即使ID不同,所產生的隱藏字段得到了相同的值。爲什麼會發生這種情況,有什麼方法可以解決這個問題?

回答

1

我不知道爲什麼會這樣,但一個簡單的方法就是你來就可以構造HTML:

<% 
    for (int i = 0; i < Model.ProductIds.Count; i++) 
    { %> 
<input name="ProductIds" type="hidden" value="<%:Model.ProductIds[i]%>"> 
<br /> 
Iteration:<%:i %> 
Guid:<%:Model.ProductIds[i]%> 
<br /> 
<% } %> 
+0

我發現的另一個解決方案是<%:Html.Hidden(「ProductIds」,null,new {id =「」,Value = Model.ProductIds [i]})%> – m0s

0

什麼是隱藏列表或多個隱藏字段名稱相同的目的是什麼?你不能讓它成爲一個具有所有值的隱藏字段嗎?

+0

永遠不要相信隱藏的字段是有效的偷偷摸摸的人將與他們混亂打破您的網站 – MarkKGreenway

+0

1)的目的,如果它有一個列表,以便當它被張貼時,它將被正確映射到列表,我可以在我的行動中使用。 2)我可以把它作爲一個單一領域的所有值,但我不喜歡複雜的事情,當一個簡單的方法應該是可能的。 3)你是否意識到你問了2個問題作爲答案? :d – m0s

相關問題