2012-05-22 51 views
0

我有一个集合:调试 - 传递数据,从控制器查看

  var results = 
      from result in xml.Descendants(ns + "GetQuoteResult") 
      select new SpotPriceModel 
      { 
       Type = result.Element(ns + "Type").Value, 
       Currency = result.Element(ns + "Currency").Value, 
       Date = result.Element(ns + "Date").Value, 
       Time = result.Element(ns + "Time").Value, 
       Rate = (decimal)result.Element(ns + "Rate"), 
       Bid = (decimal)result.Element(ns + "Bid"), 
       BidTime = result.Element(ns + "BidTime").Value, 
       ExpTime = result.Element(ns + "ExpTime").Value, 
       DisplayTime = result.Element(ns + "DisplayTime").Value, 
       DisplayDate = result.Element(ns + "DisplayDate").Value, 
       Ask = (decimal)result.Element(ns + "Ask"), 
       AskTime = result.Element(ns + "AskTime").Value 
      }; 

     var spot = results.First(); 

     return View(spot); 
    } 

而且我已经创建了一个集合的模式:

public class SpotPriceModel 
{ 
    public string Type { get; set; } 
    public string Currency { get; set; } 
    public DateTime Date { get; set; } 
    public DateTime Time { get; set; } 
    public decimal Rate { get; set; } 
    public decimal Bid { get; set; } 
    public DateTime BidTime { get; set; } 
    public DateTime ExpTime { get; set; } 
    public DateTime DisplayTime { get; set; } 
    public DateTime DisplayDate { get; set; } 
    public decimal Ask { get; set; } 
    public DateTime AskTime { get; set; } 
} 

我试图支架“视图模型点'。

但是,当我编译,我得到以下错误:

The model item passed into the dictionary is of type 'BD.Models.SpotPriceModel', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable`1[BD.Models.SpotPriceModel]'. 

视图期待下面的模型类型:

@model IEnumerable<BD.Models.SpotPriceModel> 
+0

在模型中声明的是什么类型的视图中? – Jesse

回答

2

您还没有指定的类型在你的Linq查询和所以创建了一个匿名类型而不是SpotPriceModel。

  select new SpotPriceModel 
     { 
      Type = result.Element(ns + "Type").Value, 
      Currency = result.Element(ns + "Currency").Value, 
      Date = result.Element(ns + "Date").Value, 
      Time = result.Element(ns + "Time").Value, 
      Rate = (decimal)result.Element(ns + "Rate"), 
      Bid = (decimal)result.Element(ns + "Bid"), 
      BidTime = result.Element(ns + "BidTime").Value, 
      ExpTime = result.Element(ns + "ExpTime").Value, 
      DisplayTime = result.Element(ns + "DisplayTime").Value, 
      DisplayDate = result.Element(ns + "DisplayDate").Value, 
      Ask = (decimal)result.Element(ns + "Ask"), 
      AskTime = result.Element(ns + "AskTime").Value 
     }; 
+0

感谢您的回复。我现在有一个新问题...我已经更新了这个问题。 – Gravy

+0

完美,有效。我的第二个问题是我搭建了一个列表而不是细节视图。 – Gravy

1

,而不是使用匿名类型尝试

IEnumerable<SpotPriceModel> results =(from result in xml.Descendants(ns + "GetQuoteResult") 
       select new SpotPriceModel  
      { 
       Type = result.Element(ns + "Type").Value, 
       Currency = result.Element(ns + "Currency").Value, 
       Date = result.Element(ns + "Date").Value, 
       Time = result.Element(ns + "Time").Value, 
       Rate = (decimal)result.Element(ns + "Rate"), 
       Bid = (decimal)result.Element(ns + "Bid"), 
       BidTime = result.Element(ns + "BidTime").Value, 
       ExpTime = result.Element(ns + "ExpTime").Value, 
       DisplayTime = result.Element(ns + "DisplayTime").Value, 
       DisplayDate = result.Element(ns + "DisplayDate").Value, 
       Ask = (decimal)result.Element(ns + "Ask"), 
       AskTime = result.Element(ns + "AskTime").Value 
      }).AsEnumerable();  
     //var spot = results.First();  
     return View(results); 
    } 
+0

感谢您的回应。我现在有一个新问题...我已经更新了这个问题。 – Gravy

+0

看到编辑... – Rafay

+0

完美,它工作。我的第二个问题是我搭建了一个列表而不是细节视图。 – Gravy

相关问题