代码之家  ›  专栏  ›  技术社区  ›  Daniel A. White

ASP.NET MVC 2.0-ilist<t>复选框

  •  2
  • Daniel A. White  · 技术社区  · 14 年前

    处理这一问题的最佳方法是:

    class Option {
        int id;
        string name;
    }
    
    class QuoteItem
    {
         IList<Option> options;
    }
    
    class QuoteViewModel {
         IList<Option> allOptions;
         QuoteItem quoteItem;
    }
    

    基本上,我在 allOptions . 我想要一个复选框 Option (即使它只是 id 进入 QuoteItem.options 选中时列出。我怎样才能做到这一点?最好是一个 IList<bool> 并在事实发生后约束它?

    1 回复  |  直到 14 年前
        1
  •  2
  •   Rik    14 年前

    我建议你看看这个 blog entry 关于模型绑定到列表的问题

    对于您的情况,可以使用简单的模型绑定到 IEnumerable<int> options ,其中值将是所选选项的ID。

    然后,您的输入视图将如下所示:

    <form method="post" action="/QuoteItems/SetOptions">
            <input type="hidden" name="options" value="1" />
            <input type="hidden" name="options" value="4" />
            <input type="hidden" name="options" value="2" />
            <input type="hidden" name="options" value="8" />
            <input type="submit" />
        </form>
    

    隐藏输入包含选定的选项ID、注释名称属性,这些属性对于每个隐藏输入都是相同的。默认的模型绑定器可以将其绑定到整数列表。

    接下来需要做的是根据“所有选项”选择控件中是否选择了某个项,在客户端添加/删除隐藏的选项输入。