1

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

// 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 });
    } 

// 发布:/审查/创建

    [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; }
    }
}

谢谢

如果您需要其他信息,请询问我

4

1 回答 1

1

我管理我不完全理解关系形式tblReviewand NewsItem,但是如果您想公开该信息而不在 ViewModel 中设置它,我认为唯一的方法是使用 ViewBag。

就像是

ViewBag.NewsItem = new NewsItem() { Posted = DateTime.Now };

然后从视图中访问它。

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

更新

在您进行更改后,我不明白为什么这不起作用

return View(new tblReview { UserName = @User.Identity.Name, Posted = DateTime.Now });
于 2012-04-14T14:43:06.993 回答