我正在尝试生成隐藏列表,因此我使用具有相同名称的隐藏字段,但是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不同,生成的隐藏字段也会获得相同的值。为什么会发生这种情况,有没有办法解决这个问题?
答案 0 :(得分: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 />
<% } %>
答案 1 :(得分:0)
隐藏列表或具有相同名称的多个隐藏字段的用途是什么?难道你不能把它作为一个包含所有值的隐藏字段吗?