MVC如何在尝试填充LINQ结果之前预先填充IEnumerable <string> </string>

时间:2014-06-04 07:31:51

标签: c# asp.net-mvc linq asp.net-mvc-4 razor

我有一个非常棘手的问题, 基本上我有一个可以有3个字符串选项的类,这里是基本类

public class Person
{
    public int Id {get;set;}
    public IEnumerable<string> Options {get;set;}
}

现在基本上调用它时,我想用3个字符串对象填充Options,所以在我的剃刀视图中,我可以使用foreach并绘制出3个字符串输入框。

但由于不需要选项,当用户返回此页面时,我将使用LINQ查询来提取他们选择的选项。

所以我们说他们提出了两个选项,所以在我的LINQ查询运行之后它会返回一个大小为2的IEnumerable,如果我只是保留它,那么当我想要显示3时,视图将只显示2个输入框,但是使用IEnumerable我无法插入或添加。

实现这一目标的最佳方式是什么?

3 个答案:

答案 0 :(得分:0)

你必须Clone列表,然后你必须执行相当的操作。

答案 1 :(得分:0)

也许实例化你可以枚举到列表的选项,然后用你的选项填充,这可以在构造函数中完成

public void Person()
{
   var optionsList = new List<string>();\
//Add your options

   Options = optionsList;
}

答案 2 :(得分:0)

您可以为用户选择的选项创建新的List<string>

public void Repopulate()
{
     var allOptions = Options;
     // Linq Query..
     Options = allOptions;
}

然后让视图始终显示Options