繁体   English   中英

MVC 3 Razor视图,在另一个项目中使用实体模型

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM