ASP.NET MVC 2.0 - IList;复选框

发布于 2024-08-21 22:44:49 字数 445 浏览 8 评论 0原文

处理此问题的最佳方法是什么:

class Option {
    int id;
    string name;
}

class QuoteItem
{
     IList<Option> options;
}

class QuoteViewModel {
     IList<Option> allOptions;
     QuoteItem quoteItem;
}

基本上,我在 allOptions 中拥有所有可用选项。我想要一个复选框,在选中时将另一个 Option (即使它只是它的 id)放入 QuoteItem.options 列表中。我将如何实现这个目标?最好是一个 IList 并在事后绑定它?

What is the best way to handle this:

class Option {
    int id;
    string name;
}

class QuoteItem
{
     IList<Option> options;
}

class QuoteViewModel {
     IList<Option> allOptions;
     QuoteItem quoteItem;
}

Basically, I have all the available options in allOptions. I want to have a checkbox that puts another Option (even if its just its id) into the QuoteItem.options list when it is checked. How would I accomplish this? Would it best be an IList<bool> and bind it after the fact?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

年华零落成诗 2024-08-28 22:44:49

我建议您查看此博客条目< /a> 来自 Phil Haack 关于模型绑定到列表的信息

对于您的情况,您可以使用简单的模型绑定到 IEnumerable; 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>

隐藏输入包含您选择的 optionId,注意每个隐藏输入的名称属性都是相同的。默认模型绑定器可以将其绑定到整数列表。

接下来您需要做的事情是添加/删除客户端的隐藏选项输入,具体取决于是否在“所有选项”选择控件中选择了某个项目。

I suggest you take look at this blog entry from Phil Haack about model binding to a list

For your situation you can use simple model binding to a IEnumerable<int> options, where the values will be the id of your selected options.

your input view will then look something like this:

<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>

The hidden inputs contain your selected optionId's, note name attribute which is the same for each hidden input. The default model binder can bind this to a list of integers.

The thing you need to do next is adding / removing a hidden options input at client side depending on whether an item is selected in your "all-options" select control.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文