视图(.cshtml)文件中的编译错误

Posted

技术标签:

【中文标题】视图(.cshtml)文件中的编译错误【英文标题】:Compilation error in a view(.cshtml) file 【发布时间】:2012-09-14 21:27:00 【问题描述】:

我想你知道 mvcmusicstore.codeplex.com 上的在线 MvcMusicStore 应用程序教程。我正在使用 MVC3 在 MS SQl Server 2008 专业版而不是精简版下开发这个项目。我使用 Link to Sql 类作为模型类。它像往常一样工作。但是,视图文件 Browse.cshtml 中的代码

@model MvcMusicStore.Models.Genre
@
ViewBag.Title = "Browse";

<h2>Genre : @Model.Name</h2>
<ul>
@foreach(var album in @Model.Albums)
 
<li>@album.Title</li>

</ul>

生成编译错误消息,

Browse.cshtml(7,2):错误 CS1579:foreach 语句无法对“System.Data.Linq.EntitySet1&lt;MvcMusicStore.Models.Album&gt;' because 'System.Data.Linq.EntitySet1”类型的变量进行操作,不包含“GetEnumerator”的公共定义

那么,你能给我一个解决办法来摆脱它吗?谢谢你。 此外,体裁类

[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Genres")]
public partial class Genre : INotifyPropertyChanging, INotifyPropertyChanged


    private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);

    private int _GenreId;

    private string _Name;

    private string _Description;

    private EntitySet<Album> _Albums;
    ...

专辑类,

[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Albums")]
public partial class Album : INotifyPropertyChanging, INotifyPropertyChanged


    private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);

    private int _AlbumId;

    private int _GenreId;

    private int _ArtistId;

    private string _Title;

    private decimal _Price;

    private string _AlbumArtUrl;

    private EntitySet<Cart> _Carts;

    private EntitySet<OrderDetail> _OrderDetails;

    private EntityRef<Artist> _Artist;

    private EntityRef<Genre> _Genre;
...

【问题讨论】:

你能发布你的流派课程吗? 类是由 Visual Studio 2010 使用链接到具有大声明的 sql 类自动构建的。然而,我包括了流派和专辑类。看看吧。 【参考方案1】:

是的,我找到了解决方案。缺少程序集引用。我刚刚在 web.config 文件中添加了一个程序集引用。即,

<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>

就是这样。

【讨论】:

以上是关于视图(.cshtml)文件中的编译错误的主要内容,如果未能解决你的问题,请参考以下文章

如何让asp.net core mvc发布时候不编译cshtml视图

剃刀视图没有给出编译时错误[重复]

ASP.NET MVC5 视图预编译

IIS 编译器错误消息 CS0016

如何在 vNext 中将所有 cshtml 文件编译成 DLL 或 .net 程序集?

未修改的 AppDelegate.m 中的编译错误