1
我想在局部視圖中選擇和顯示每個新聞類別的最近5個提交。新聞表具有類別Id作爲外鍵。我有下面的代碼,但它在測試中什麼也沒有顯示。任何人都可以協助MVC3 Linq選擇每個類別的前5名
守則新聞控制器
public ActionResult _HomeCatNews()
{
var info = db.News
.GroupBy(r => r.CatId)
.SelectMany(g => g.OrderBy(r => r.RevDate)
.Take(5))
.ToList();
return PartialView();
}
局部視圖視圖代碼如下
@model IEnumerable<KPortal.Models.HomeNewzCat>
@using KPortal.Helpers
@foreach (var item in Model) {
<ul>
<li>
<div class="image">
<a href="#">@Html.DisplayFor(modelItem => item.NewsPic)</a>
</div>
<div class="details">
<h5><a href="#">@Html.Raw(Html.Truncate(item.NewsContent, 55, ""))</a></h5>
<span class="date">
@Html.DisplayFor(modelItem => item.RevisionDate)
@Html.DisplayFor(modelItem => item.NewSource)
</span>
</div>
@Html.DisplayFor(modelItem => item.NewsTitle)
</li>
</ul>
}
HomeNewzCat型號
namespace KPortal.Models
{
public class HomeNewzCat
{
[Display(Name = "Category ID")]
public int CategoryID { get; set; }
[Display(Name = "Category")]
public string Category { get; set; }
[Display(Name = "Revision Date")]
public DateTime RevisionDate { get; set; }
[Display(Name = "News Title")]
public string NewsTitle { get; set; }
[Display(Name = "Story Picture")]
public string NewsPic { get; set; }
[AllowHtml]
[Display(Name = "News Content")]
public string NewsContent { get; set; }
[Display(Name = "Source")]
public string NewSource { get; set; }
public DateTime Date { get; set; }
}
}
非常感謝@AlfalfaStrange我想實現你的解決方案,但我得到的錯誤是什麼去YourPartialView我在想_HomeCatNews() – Diin
你得到了什麼錯誤?你能用你正在嘗試的代碼更新你的問題嗎?您的部分視圖名爲「_HomeCatNews.cshtml」嗎?如果是這樣,你應該使用'返回PartialView(「_ HomeCatNews」,模型);'它應該與它被加載到視圖或共享文件夾中的視圖位於相同的視圖文件夾中,以便找到它。 –
傳遞到字典中的模型項目類型爲'System.Collections.Generic.List'1 [KPortal.Models.News]',但該字典需要類型爲'System.Collections.Generic.IEnumerable'1的模型項[ KPortal.Models.HomeNewzCat]」。 – Diin