MVC 3 Razor View, использовать модель Entitiy в другом проекте - PullRequest
1 голос
/ 24 июля 2011

Я в процессе изучения MVC 3, Razor и EF Model First.

У меня есть проект, над которым я работаю, где я определил модель EF в отдельном проекте от основного веб-проекта. Я пытаюсь получить доступ к данным, используя эту модель в представлении.

Я получаю эту ошибку: enter image description here

Я добавил 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>

Спасибо за любую помощь.

UPDATE

Эта ошибка произошла из-за отсутствия ссылки на сборку в моем файле web.config. Он был добавлен в мои ссылки в проекте, но не в web.config. IIS в значительной степени говорит мне об этом в моем сообщении об ошибке. Я должен был прочитать это лучше. Извините, что потратил время. Я добавил следующее в мой web.config, и теперь он отлично работает:

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

Ответы [ 2 ]

3 голосов
/ 24 июля 2011

Эта ошибка произошла из-за отсутствия ссылки на сборку в моем web.config.Он был добавлен в мои ссылки в проекте, но не в web.config.IIS в значительной степени говорит мне об этом в моем сообщении об ошибке.Я должен был прочитать это лучше.Извините, что потратил время.Я добавил следующее в мой web.config, и теперь он отлично работает:

<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
3 голосов
/ 24 июля 2011

Добавление пространства имен к Web.Config недостаточно.Когда вы добавляете их в Web.Config, они служат директивами using в ваших представлениях.

Так что вам нужно Reference System.Data.Entity в вашем проекте MVC.(Щелкните правой кнопкой мыши 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>

Вы добавили ссылку на EntityFramework в своем проекте MVC?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...