显示的部分视图MVC三个随机物品(display three random articles in

2019-10-22 20:17发布

我有一个博客,其中的某个网页MainDetails,我在这里显示当前的博客,这个细节页面内我显示partialview并在这部分我想显示多达三个random类似的帖子。 不过我升技坚持的语法:

在我的局部视图所有我做我的列表中显示的帖子,但是我想只显示3相关的类别属性的职位,但在randomPost有属性CategoryIdPost有一类多对一的关系(类别可以有很多帖子,但后只能有一个类别),我试图让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项:

Answer 1:

如果你只是想有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);
     }
}

和你的观点里,你会用下列叫它

@Html.Action("RandomPosts", "Home", new { categoryId = 1 })


文章来源: display three random articles in a partial view mvc