C# MVC 3 Razor视图,在另一个项目中使用实体模型
我正在学习MVC3、Razor和EF模型 我有一个项目,我在一个独立的项目中定义了EF模型,该项目与主web项目不同。我试图在视图中使用该模型访问数据 我得到这个错误: 我将System.Data.Entity添加到我的引用中 控制器:C# MVC 3 Razor视图,在另一个项目中使用实体模型,c#,asp.net,entity-framework,asp.net-mvc-3,razor,C#,Asp.net,Entity Framework,Asp.net Mvc 3,Razor,我正在学习MVC3、Razor和EF模型 我有一个项目,我在一个独立的项目中定义了EF模型,该项目与主web项目不同。我试图在视图中使用该模型访问数据 我得到这个错误: 我将System.Data.Entity添加到我的引用中 控制器: public ActionResult ListRole() { AuthDbContainer db = new AuthDbContainer(); List<Role> roles = db.Roles.ToList();
public ActionResult ListRole()
{
AuthDbContainer db = new AuthDbContainer();
List<Role> roles = db.Roles.ToList();
return View(roles);
}
公共操作结果列表角色()
{
AuthDbContainer db=新的AuthDbContainer();
List roles=db.roles.ToList();
返回视图(角色);
}
视图:
@model IEnumerable
@{
ViewBag.Title=“角色列表”;
Layout=“~/Views/Shared/_Layout.cshtml”;
}
列表角色
@ActionLink(“新建”、“创建”)
描述
创建日期
@foreach(模型中的var项目)
{
@DisplayFor(modelItem=>item.desc)
@DisplayFor(modelItem=>item.createDate)
@ActionLink(“编辑”,“编辑”,新的{id=item.roleName})|
@ActionLink(“详细信息”,“详细信息”,新的{id=item.roleName})|
@ActionLink(“删除”,“删除”,新的{id=item.roleName})
}
谢谢你的帮助
更新
发生此错误是因为my web.config中的程序集引用丢失。它已添加到项目中的我的引用中,但未添加到web.config中。IIS在我的错误消息中几乎告诉了我这一点。我本应该读得更好。对不起,浪费了大家的时间。我在web.config中添加了以下内容,现在效果很好:
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
向
Web.Config
添加名称空间是不够的。当您将它们添加到Web.Config
时,它们在视图中充当指令
因此,在MVC项目中需要引用系统.Data.Entity
。(右键单击MVC项目中的References
,然后单击addreference
等等…)
此外,如果要使用
指令向Razor视图添加,则需要按如下方式添加
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
您需要按如下方式配置节组
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
然后
您是否在MVC项目中添加了对EntityFramework
的引用?向Web.Config
添加命名空间是不够的。当您将它们添加到Web.Config
时,它们在视图中用作使用的
指令
因此,在MVC项目中需要引用系统.Data.Entity
。(右键单击MVC项目中的References
,然后单击addreference
等等…)
此外,如果要使用
指令向Razor视图添加,则需要按如下方式添加
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
您需要按如下方式配置节组
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
然后
您是否在MVC项目中添加了对EntityFramework的引用?发生此错误的原因是my web.config中的程序集引用丢失。它已添加到项目中的我的引用中,但未添加到web.config中。IIS在我的错误消息中几乎告诉了我这一点。我本应该读得更好。对不起,浪费了大家的时间。我在web.config中添加了以下内容,现在效果很好:
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
发生此错误是因为my web.config中的程序集引用丢失。它已添加到项目中的我的引用中,但未添加到web.config中。IIS在我的错误消息中几乎告诉了我这一点。我本应该读得更好。对不起,浪费了大家的时间。我在web.config中添加了以下内容,现在效果很好:
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
它已经添加到参考资料中,不过我会尝试你的其他建议。当前它不是system.web如果我尝试此操作,则会出现另一个错误:无法识别的配置部分system.web.webPages.razor。但它会在web.config中自动完成,因此它必须位于正确的位置。@m4tt1mus编辑的答案。尝试将sectionGroup
添加到Web.Config
中,并在MVC项目中引用EntityFramework
。嗯。。。System.Data.Entity是我非常确定的实体框架。@m4tt1mus在RazorIt中全局配置名称空间的步骤已经添加到引用中,不过我将尝试您的其他建议。当前它不是system.web如果我尝试此操作,则会出现另一个错误:无法识别的配置部分system.web.webPages.razor。但它会在web.config中自动完成,因此它必须位于正确的位置。@m4tt1mus编辑的答案。尝试将sectionGroup
添加到Web.Config
中,并在MVC项目中引用EntityFramework
。嗯。。。System.Data.Entity是我非常确定的实体框架。@m4tt1mus在Razor中全局配置名称空间