2016-09-13 62 views
1

我试图创造的如何使用NancyFx的超级简单的搜索引擎来遍历同时运行发送到前端与ViewBag字符串列表一个简单的例子迭代.Net核心。但是当我将我的List附加到@Each语句时,它只是给出了一个错误。但是,在将其包装到自定义对象中后,我能够打印列表。通过与超级简单的搜索引擎列表没有一个模型

public class ViewHolder 
{ 
    public List<string> listOfThings { get; set; } 
} 
... 
ViewHolder boxIt = new ViewHolder(); 
boxIt.listOfThings = someList; 
ViewBag.viewPasser = boxIt; 

,然后在前端:

@Each.Context.ViewBag.viewPasser.listOfThings 
    @Current 
@EndEach 

这实现了我想要的东西,但我不明白为什么@Each将不无包装类识别我的列表。有没有办法做到这一点,没有额外的拳击?

回答

1

你可以完成你是通过你的收藏作为一种模式的观点,而不是使用viewbag寻找什么。这里是如何做到这一点的例子:

 
    in module 
    ... 
    var items = new List(); 
    items.Add("Item1"); 
    items.Add("Item2"); 
    items.Add("Item3"); 
    return View["Index", items]; 


    in view 
    ... 
    @Each 
     @Current 
    @EndEach 

我挖成NancyFx源代码,并通过最终是你所看到的问题负责文件台阶。发生的事情是,在那个代码中,Nancy试图将ViewBag中的集合转换为IEnumerable并且失败。看来,当你直接把收集到ViewBag和南希试图做演员,其中收集的类型不再列表只是动态的,所以投失败,空和南希返回[ERR!]。但是,如果你把一个类列表和地方类的实例在ViewBag它能够正确地调和型和执行转换。仍然不是非常有用,但希望更深入了解为什么明显的差异。