我的控制器中有以下代码:
// 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; }
}
}
谢谢
如果您需要其他信息,请告诉我
答案 0 :(得分:1)
我管理员我不明白地理解关系表单tblReview
和NewsItem
,但是如果你想在不在ViewModel中设置它的情况下公开那些信息,我认为唯一的方法是使用ViewBag。
像
这样的东西ViewBag.NewsItem = new NewsItem() { Posted = DateTime.Now };
然后从视图中访问它。
老实说,我会创建一个特定的视图模型来保存视图所需的所有信息,但如果没有其他方式,我猜这是另一种选择。
<强>更新强>
在你做出改变后,我不明白为什么这不起作用
return View(new tblReview { UserName = @User.Identity.Name, Posted = DateTime.Now });