ASP.NET MVC 2.0 - IList;复选框
处理此问题的最佳方法是什么:
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我建议您查看此博客条目< /a> 来自 Phil Haack 关于模型绑定到列表的信息
对于您的情况,您可以使用简单的模型绑定到
IEnumerable; options
,其中值将是您所选选项的 ID。然后,您的输入视图将如下所示:
隐藏输入包含您选择的 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:
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.