2016-03-21 6 views
0

Entity FrameworkおよびMVC ActionResultで問題が発生しましたが、部分ビューが返されます。 データベースから部分的なビューアクションを取得するサンプルコードを作成し、データを通常のデータモデルとして部分ビューにプラグインしました。 しかし、私は同じコードを使用してデータを取得するとき、それは仕事ではなく空のモデルを返します。通常のActionResultで使用すると、通常のViewに戻ります。コントローラクラスにプライベートとして定義Entity FrameworkがMVCで値を返しません。

public ActionResult PaperSpecification() 
{ 
    var _sheets = _entity.Sheets.ToList(); 

    return PartialView("_SheetSpecificationPartial", _sheets); 
} 

_entity変数:

これは、部分的なビューのアクションです。

私はなく、indexアクションで使用したのと同じ考え方は

public ActionResult Index() 
{ 
    var _sheets = _entity.Sheets.ToList(); 

    return View(_sheets); 
} 

これは、Indexビューです:

@{ 
    ViewBag.Title = "Index"; 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 
@model IEnumerable<PrintManager.Models.Db.Sheet> 
<h2>Index</h2> 

@{ 
    Html.RenderAction("PaperSpecification", "WorkOrder"); 
} 

<ul> 
    @foreach (var item in Model) 
    { 
     <li>@item.SheetName</li> 
    } 
</ul> 

そして最後に、これは部分図である:私はこれを考える

<div class="panel panel-primary"> 
    <div class="panel-heading"> 
     <h3 class="panel-title">Paper Specification</h3> 
    </div> 
    <div class="panel-body"> 
     <div class="row"> 
      <div class="col-md-3"> 
       <div class="form-group"> 
        <label>Paper Specification</label> 
        <select class="form-control"> 
         @if (ViewBag.sheets_L != null) 
         { 
          foreach (var item in Model) 
          { 
           <option>@item.SheetName</option> 
          } 
         } 
        </select> 
       </div> 
      </div> 
      <div class="col-md-3"></div> 
      <div class="col-md-3"></div> 
      <div class="col-md-3"></div> 
     </div> 
    </div> 
</div> 

エンティティの問題はありませんが、部分ビューの問題です。コメントでパベルによって示唆されるように

+1

'var _sheets = _entity.Sheets.ToList();'にブレークポイントを設定し、データが含まれているかどうかを確認しましたか? –

+0

PaperSpecificationアクションはまったく必要ありません。部分表示をインデックス表示にする –

答えて

0

置き換える:

@{ 
    Html.RenderAction("PaperSpecification", "WorkOrder"); 
} 

この場合

@Html.Partial("_SheetSpecificationPartial") 

では、あなたの部分図に明示的にモデルを渡す必要はありません。これで、 PaperSpecificationメソッドを削除できます。

関連する問題