【问题标题】:ASP.NET MVC Dynamic List BindingASP.NET MVC 动态列表绑定
【发布时间】:2011-05-19 06:47:52
【问题描述】:

我有一个强类型 mvc 页面,我不会将无序列表绑定到对象列表。所以在 mvc 视图中它可能看起来像

<% foreach (var item in Model.WhatYouDoL) { %>
<li><%: Html.Encode(item.Text) %><input type="hidden" name="WhatYouDoL[0].Reference" /></li>
<% } %>

我的视图模型可能看起来像

public class ViewModelQuoteWhatYouDoInMotorTrade
    {
        public List<WhatYouDo> WhatYouDoL { get; set; }
    }

我的列表包含像

这样的对象
public struct WhatYouDo
    {

        public decimal Percent { get; set; }
        public string Reference { get; set; }
        public string Text { get; set; }
    }

如果我将 WhatYouDoL[0].Reference 与索引 ([0]) 一起使用,则此绑定正常,加载时我可以使用索引进行设置。问题是我想在客户端的这个列表中添加和删除。所以我可能有一些 js 添加和额外的列表项并删除当前的。这意味着我必须以某种方式管理名称中的索引,并使它们在客户端保持有序且不重复。有谁知道是否有办法使用名称中的索引。

提前致谢。

【问题讨论】:

  • 您想使用 Ajax 更新列表吗?要不然是啥。请提供更多信息。

标签: asp.net-mvc-2 list binding strong-typing


【解决方案1】:

可能有一个错误:

<% foreach (var item in Model.WhatYouDoL) { %>
<li><%: Html.Encode(item.Text) %><input type="hidden" name="WhatYouDoL[0].Reference" /></li>
<% } %>

也许应该是:

<% foreach (var item in Model.WhatYouDoL) { %>
<li><%: item.Text %><input type="hidden" name="<%: item.Reference %>" /></li>
<% } %>

只要使用&lt;:proof就不需要编码

【讨论】:

  • 别忘了中的冒号,我觉得应该是
  • 您好,感谢您抽出宝贵时间回答。我可能没有正确地提出我的问题。问题是必须使用这个命名约定 name="WhatYouDoL[0].Reference"。我想向列表客户端添加和删除,但这意味着我需要确保最后所有 [0] 索引在集合中都是正确的。我希望 o 可以做 name="WhatYouDoL.Reference" 并且 mvc 会发现它是一个集合。再次感谢。
  • 我认为这可能有效。我还没有尝试过。非顺序索引部分。 haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx
猜你喜欢
  • 2015-11-18
  • 1970-01-01
  • 2017-02-23
  • 1970-01-01
  • 1970-01-01
  • 2020-04-04
  • 2016-09-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多