我有一个博客,其中一个页面是 MainDetails,在这里我显示当前博客,在这个详细信息页面中我显示一个 partialview
并且在那个部分我试图显示三个 随机
相似的帖子。但是我有点坚持语法:
在我的部分 View 中,我所做的只是显示我列表中的帖子,但是我只想显示与类别属性相关的 3 个帖子,但随机
。 Post
有属性CategoryId
,Post
和Category是多对一的关系(category可以有很多post,post只能有一个category) ,我正在尝试获取 3 个按类别相关的随机帖子:
PostController GetSimilarPosts 操作:
public ActionResult GetSimilarPosts(int id = 0)
{
var randomPosts = db.Categories.Where(p => p.Id == id).SelectMany(p => p.Posts).OrderBy(r => Guid.NewGuid()).Take(3);
return View(randomPosts.ToList());
}
但是在我的 maindetails
页面上针对上述操作和 partialview
的输出仍然显示超过 3 个项目:
最佳答案
如果你只想拥有 3 篇随机文章,你可以使用这样的东西
public class HomeController : Controller
{
private DatabaseContext db = new DatabaseContext();
public ActionResult RandomPosts(int categoryId)
{
var randomPosts = db.Posts.Where(x => x.CategoryId == categoryId)
.OrderBy(r => Guid.NewGuid()).Take(3);
return View(randomPosts);
}
}
在您的 View 中,您可以使用以下方式调用它
@Html.Action("RandomPosts", "Home", new { categoryId = 1 })
关于c# - 在局部 View mvc 中显示三篇随机文章,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29900080/