[英]How to use View Models in MVC to display multiple model in razor view?
[英]MVC 3 Razor View, use Entitiy Model in another project
我正在学习MVC 3,Razor和EF Model First。
我有一个正在处理的项目,在与主Web项目不同的项目中定义了EF模型。 我试图在视图中使用该模型访问数据。
我收到此错误:
我将System.Data.Entity添加到引用中。
控制器:
public ActionResult ListRole()
{
AuthDbContainer db = new AuthDbContainer();
List<Role> roles = db.Roles.ToList();
return View(roles);
}
视图:
@model IEnumerable<WebSecurity.Role>
@{
ViewBag.Title = "Role List";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<!DOCTYPE html>
<html>
<head>
<title>ListRole</title>
</head>
<body>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table>
<tr>
<th>
desc
</th>
<th>
createDate
</th>
<th>
</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.desc)
</td>
<td>
@Html.DisplayFor(modelItem => item.createDate)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id = item.roleName }) |
@Html.ActionLink("Details", "Details", new { id = item.roleName }) |
@Html.ActionLink("Delete", "Delete", new { id = item.roleName })
</td>
</tr>
}
</table>
</body>
</html>
感谢您的任何帮助。
更新
发生此错误是因为缺少我的web.config中的程序集引用。 它已添加到项目中的引用中,但未添加到web.config中。 IIS在错误消息中几乎告诉了我。 我应该读得更好。 很抱歉浪费任何人的时间。 我将以下内容添加到我的web.config中,现在可以正常使用:
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
仅将名称空间添加到Web.Config
是不够的。 当您将它们添加到Web.Config
它们将在您的视图中用作using
指令。
因此,您在MVC项目中需要Reference
System.Data.Entity
。 (右键点击References
在你的MVC项目,然后单击Add Reference
等等...)
此外,如果要using
指令添加到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>
然后
<system.web.webPages.razor>
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages" />
<add namespace="System.Data.Entity" />
</namespaces>
</pages>
</system.web.webPages.razor>
您是否在MVC项目中添加了对EntityFramework
的引用?
发生此错误是因为缺少我的web.config中的程序集引用。 它已添加到项目中的引用中,但未添加到web.config中。 IIS在错误消息中几乎告诉了我。 我应该读得更好。 很抱歉浪费任何人的时间。 我将以下内容添加到我的web.config中,现在可以正常使用:
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.