2011-07-24 2 views
1

Я сейчас изучаю MVC 3, Razor и EF Model First.MVC 3 Razor View, используйте Entitiy Model в другом проекте

У меня есть проект, над которым я работаю, где я определил модель 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" /> 

ответ

3

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

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

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

Для этого вам необходимо ReferenceSystem.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?

+0

Это уже добавлено к ссылкам, я попробую другое ваше предложение. В настоящее время это isn system.web – m4tt1mus

+0

Если я попробую это, я получаю еще одну ошибку: Unrecognized configuration section system.web.webPages.razor. Но он автозаполняется в web.config, поэтому он должен быть правильным местом. – m4tt1mus

+0

@ m4tt1mus отредактированный ответ. попробуйте добавить 'sectionGroup' в' Web.Config' и ссылку 'EntityFramework' в ваш проект MVC. – Eranga

Смежные вопросы