0
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。在 Home Controller 上的部分视图和 Index actionresult 上。当我尝试在索引视图页面上呈现部分视图时,我从索引操作结果中获得了相同的结果集两次,一次在表中,另一次在 @{Html.RenderPartial("toprank", model); } ...我确信我对局部视图的工作原理有一些基本的了解,但在过去 3 小时内无法弄清楚。如果我将 url 更改为部分视图,即(home/toprank),那么我会得到我想要的结果集,但它不会出现在 Home/Index 页面上

如果我的设计概念有误,请告诉我。我开始觉得这可能是让这个工作的错误方法。

4

1 回答 1

2

如果您想查看调用的 toprank() ,您需要使用 Html.Action 而不是部分,将视图更改为:

<td>
  @Html.Action("toprank")
</td>
于 2013-04-27T18:32:50.977 回答