public ActionResult Index()
{
List<pInfo> pobj = new List<pInfo>();
pobj = (from pid in db.pInfoes
orderby pid.pId descending
select pid).ToList();
return View(pobj);
}
public ActionResult toprank() ///partial view
{
List<pInfo> pobj = new List<pInfo>();
pobj = (from pid in db.pInfoes.Where(c => c.DateCreated < DateTime.Now)
orderby pid.Score descending
select pid).Take(3).ToList();
return PartialView("toprank", pobj);
}
\\\ Index.csHtml
@model IEnumerable<TestProj.pInfo>
<table>
<tr>
<td>
@foreach (var item in Model)
{
<table>
<tr>
<td>
<iframe width="560"
height="300"
src="@item.pUrl"
frameborder="0"></iframe>
</td>
</tr>
</table>
}
</td>
<td>
@{Html.RenderPartial("toprank", model);}
</td>
</tr>
</table>
同じモデル、つまり pInfo に対して異なる結果セットを渡しています。ホームコントローラーの部分ビューとインデックスアクションの結果。インデックス ビュー ページで部分ビューをレンダリングしようとすると、テーブルで 1 回、@{Html.RenderPartial("toprank", model); で 2 回、インデックス アクションの結果から同じ結果セットを取得しています。 ...部分ビューがどのように機能するかについての基本的な理解が欠けていると確信していますが、過去3時間は理解できません。URL を部分ビュー (home/toprank) に変更すると、必要な結果セットが得られますが、Home/Index ページには表示されません。
私の設計コンセプトが間違っているかどうか教えてください..これはおそらくこれを機能させるための間違ったアプローチだと感じ始めています..