有人可以检查下面的代码并告诉我为什么UserId和Date字段没有填充?
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult RecordCard(WeightViewModel vModel)
{
Weight Model = vModel.Weight;
if (ModelState.IsValid)
{
using (WebApplication1Entities db = new WebApplication1Entities())
{
Weight weight = new Weight();
weight.UserId = User.Identity.GetUserId();
weight.Stone = Model.Stone;
weight.Pound = Model.Pound;
weight.Date = System.DateTime.Now;
db.Weights.Add(Model);
db.SaveChanges();
}
}
return RedirectToAction("Index");
}
发布表后,Weight有一个新的记录,包含Stone和Pound值,但UserId和Date是Null。
我在数据引用的Weight类下面包含了:
public partial class Weight
{
public int Id { get; set; }
public string UserId { get; set; }
public Nullable<short> Stone { get; set; }
public Nullable<short> Pound { get; set; }
public Nullable<System.DateTime> Date { get; set; }
}
非常感谢任何帮助: - )
答案 0 :(得分:3)
因为你这样做:
db.Weights.Add(Model);
而不是:
db.Weights.Add(weight);
这是一个非常好的理由,以便不您的ViewModel
课程的DomainModel
个班级。如果ViewModel
与Type
不同,则数据库上下文的Add
将因编译错误而失败。