如何显示项目的详细信息以及其他数据库信息

时间:2015-02-03 22:03:46

标签: c# asp.net-mvc

我对asp.net mvc相当新,在我的详细信息页面中,我尝试在我的详细信息页面中添加指向其他详细信息页面的链接。以及有关所选页面的信息。但我不确定如何在控制器或视图中进行此操作。

以下是详细信息页面的控制器代码:

 public ActionResult Details(int? id)
    {
        if (id == null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }
        Posts posts = db.Posts.Find(id);
        if (posts == null)
        {
            return HttpNotFound();
        }
        return View(posts);
    }

我尝试在其中添加这样的内容:

var posts = (from p in db.Posts
                    orderby p.DateAdded descending
                    select p).Take(4);

但我没有运气。 所有帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

问题不是很清楚。我假设您正在尝试在一个帖子的详细信息页面上显示指向其他四个帖子的链接。

在这种情况下,您必须创建一个视图模型类,该类将从您的Details操作返回到视图。像这样:

public class PostDetailsViewModel
{
    public Post MainPost { get; set; }
    public List<Post> OtherPosts { get; set; }
}

然后在您的控制器操作中,您将填充此模型:

public ActionResult Details(int? id)
{
    if (id == null)
    {
        return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
    }

    Post mainPost = db.Posts.Find(id);

    if (mainPost == null)
    {
        return HttpNotFound();
    }

    var otherPosts = (from p in db.Posts
                      orderby p.DateAdded descending
                      select p).Take(4).ToList();

    var model = new PostDetailsViewModel
    {
        MainPost = mainpost,
        OtherPosts = otherPosts
    }

    return View(model);
}

请务必更新您的Details视图以接受PostDetailsViewModel作为其型号。