我按照教程Consuming and Storing Data from a REST Service with ASP.NET Razor 进行了操作,但是在运行它时出现了这个 ASP.NET 错误:
CS1061: 'System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement>' does not contain a definition for 'Elements' and no extension method 'Elements' accepting a first argument of type 'System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement>' could be found (are you missing a using directive or an assembly reference?)
参考这一行:
var maxTemp = from t in xdoc.Descendants("temperature").Elements("value")
where t.Parent.Attribute("type").Value == "maximum"
select t;
这似乎表明这Elements()
不是一种公认的方法,尽管微软说它是.
当我Show Detailed Compiler Output
说,除其他外:
C:\Windows\system32> "C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe" /t:library /utf8output /R:"C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml.Linq\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.Linq.dll"
然而后来它说:
Microsoft (R) Visual C# Compiler version 4.0.30319.17929
for Microsoft (R) .NET Framework 4.5
在我的 Webmatrix 中Settings
,它显示我正在使用.NET 4 (Integrated)
和ASP.NET Web Pages 2.0.20710.0
所有这些 C# 代码都在文件的@functions{}
块中~\App_Data\Weather.cshtml
。
我的Default.cshtml
文件包含以下内容:
@using System.Xml.Linq
@{
var temp = Weather.GetWeather("98052");
}
<ol>
<li>Zip code: @temp.Zip</li>
<li>High: @temp.MaxTemp</li>
<li>Low: @temp.MinTemp</li>
<li>Forecast: @temp.Forecast</li>
<li>Longitude: @temp.Longitude</li>
<li>Latitude: @temp.Latitude</li>
</ol>
我究竟做错了什么?
(顺便说一句,我遵循了教程末尾的建议,但它们也没有用。我昨天用谷歌搜索了几个小时,并在web.config
文件中尝试了一些东西,但充其量没有帮助)