将date.now添加到控制器中,其中包含代码

时间:2012-04-14 14:33:40

标签: c# asp.net asp.net-mvc-3

我的控制器中有以下代码:

// GET: /Review/Create
public ActionResult Create()
    {
        var userGames = db.tblGames.Where(g => g.UserName == User.Identity.Name);
        ViewBag.GameIDFK = new SelectList(userGames, "GameID", "GameName");
        return View(new tblReview { UserName = @User.Identity.Name });
    } 

// POST:/ Review / Create

    [HttpPost]
    public ActionResult Create(tblReview tblreview)
    {
        if (ModelState.IsValid)
        {
            db.tblReviews.Add(tblreview);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        var userGames = db.tblGames.Where(g => g.UserName == User.Identity.Name);
        ViewBag.GameIDFK = new SelectList(userGames, "GameID", "GameName");
        return View(new tblReview { UserName = @User.Identity.Name });
    }

我想在其中添加以下代码:

        return View(new tblReview { Posted = DateTime.Now });

但我不知道如何将代码组合在一起。我尝试了一个If语句,但应用程序崩溃了,因为它只是在各处抛出错误。

我想将这些添加到代码中的原因是,当撰写评论时,查看者可以看到评论发布的日期。我的数据库表和模型中有一个已发布的属性,如下所示:

namespace TestWebSite.Models
{
    using System;
    using System.Collections.Generic;

    public partial class tblReview
    {
        public int ReviewID { get; set; }
        public string Recomendation { get; set; }
        public string AvoidOrBuy { get; set; }
        public string Score { get; set; }
        public System.DateTime Posted { get; set; }
        public int GameIDFK { get; set; }
        public string UserName { get; set; }

        public virtual tblGame tblGame { get; set; }
    }
}

谢谢

如果您需要其他信息,请告诉我

1 个答案:

答案 0 :(得分:1)

我管理员我不明白地理解关系表单tblReviewNewsItem,但是如果你想在不在ViewModel中设置它的情况下公开那些信息,我认为唯一的方法是使用ViewBag。

这样的东西
ViewBag.NewsItem = new NewsItem() { Posted = DateTime.Now };

然后从视图中访问它。

老实说,我会创建一个特定的视图模型来保存视图所需的所有信息,但如果没有其他方式,我猜这是另一种选择。

<强>更新

在你做出改变后,我不明白为什么这不起作用

return View(new tblReview { UserName = @User.Identity.Name, Posted = DateTime.Now });