2011-07-24 16 views
1

MVC 3、Razor、EF Model Firstの学習中です。MVC 3 Razor View、別のプロジェクトでEntitiy Modelを使用

私はメインWebプロジェクトとは別のプロジェクトで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> 

任意の助けてくれてありがとう。私のweb.configファイル内のアセンブリ参照が欠落していたので

UPDATE

このエラーが起こりました。それはプロジェクトの私の参照に追加されましたが、web.configには追加されませんでした。 IISは私のエラーメッセージでそれほど多くのことを教えてくれます。私はそれをよりよく読むべきだった。誰もが時間を無駄にして申し訳ありません。私は私のweb.configファイルに以下を追加し、それが今で素晴らしい作品: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に追加すると、ビューにusingディレクティブとして機能します。

MVCプロジェクトにReferenceSystem.Data.Entityが必要です。あなたはカミソリビューにusingディレクティブを追加したい場合、あなたはあなたが設定する必要が

は次のようにそれを追加する必要がありますさらに

を(右...など、あなたのMVCプロジェクトにReferencesをクリックしてAdd Referenceをクリックして)

<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プロジェクトの?

+0

すでに参照に追加されていますが、私はあなたの他の提案を試みます。現在はisn system.web – m4tt1mus

+0

これを試してみると、別のエラーが出ます:認識できない設定セクションsystem.web.webPages.razor。しかし、それはweb.configで自動完成し、正しい場所になければなりません。 – m4tt1mus

+0

@ m4tt1mus編集の回答です。 MVCプロジェクトで 'sectionGroup'を' Web.Config'に追加し、 'EntityFramework'を参照してみてください。 – Eranga

関連する問題