Asp.net mvc 2 为什么Html.Hidden赢了';t生成名称相同但值不同的隐藏字段

Asp.net mvc 2 为什么Html.Hidden赢了';t生成名称相同但值不同的隐藏字段,asp.net-mvc-2,Asp.net Mvc 2,我试图生成一个隐藏列表,所以我使用同名的隐藏字段,但是Html.hidden输出现有值而不是新值。所以这个代码 <% for (int i = 0; i < Model.ProductIds.Count; i++) { %> <%: Html.Hidden("ProductIds", Model.ProductIds[i], new { id=""})%> <br /> Iteration:<%:i %> Guid:<

我试图生成一个隐藏列表,所以我使用同名的隐藏字段,但是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 />
<% } %>


迭代: Guid:
生成此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>


迭代次数:0 Guid:48906f4c-1719-43ab-9d7e-c336a71b8624

迭代:1 Guid:b4f01496-dddf-41f2-a05b-43392d779a44

请注意,即使ID不同,生成的隐藏字段也会获得相同的值。为什么会发生这种情况,有没有办法解决这个问题

我不知道为什么会发生这种情况,但一个简单的解决方法是自己构建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 />
<% } %>


迭代: Guid:

我不知道为什么会发生这种情况,但一个简单的解决方法是自己构建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 />
<% } %>


迭代: Guid:

隐藏列表或具有相同名称的多个隐藏字段的用途是什么?你不能让它成为一个包含所有值的隐藏字段吗

隐藏列表或具有相同名称的多个隐藏字段的用途是什么?你不能让它成为一个包含所有值的隐藏字段吗

永远不要相信隐藏字段是有效的,偷偷摸摸的人会破坏你的网站1)如果它想要有一个列表,那么当它被发布时,它会正确地映射到一个列表,我可以在我的行动中使用它。2) 我可以让它成为一个包含所有值的单一字段,但我不喜欢在可能使用更简单的方法时使事情复杂化。3) 你知道你问了两个问题作为答案吗DNever trust hidden field是有效的,偷偷摸摸的人会破坏你的网站1)如果它想要一个列表,那么当它被发布时,它会正确地映射到一个列表,我可以在我的操作中使用它。2) 我可以让它成为一个包含所有值的单一字段,但我不喜欢在可能使用更简单的方法时使事情复杂化。3) 你知道你问了两个问题作为答案吗我找到的另一个解决方案是