【发布时间】:2014-03-24 10:46:24
【问题描述】:
我的模型: (i) 用于交易
public class Transaction
{
[Key]
public int TransactionId { get; set; }
public DateTime OnWardDate { get; set; }
public DateTime ReturnDate { get; set; }
public virtual UserProfile User { get; set; }
}
(ii) 对于用户
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
private UserDetails _details = new UserDetails();
public virtual UserDetails details
{
get { return _details; }
}
}
(ii) 用户详情
public class UserDetails
{
[Key]
public int DetailsId { get; set; }
public string DLNum { get; set; }
}
我的创建交易控制器:
// GET: /Transaction/Create
public ActionResult Create()
{
return View();
}
//
// POST: /Transaction/Create
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(Transaction transaction)
{
if (ModelState.IsValid)
{
db.Transactions.Add(transaction);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(transaction);
}
我对创建交易的看法:
<div class="editor-label">
@Html.LabelFor(model => model.OnWardDate)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.OnWardDate)
@Html.ValidationMessageFor(model => model.OnWardDate)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.User.details.DLNum)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.User.details.DLNum)
@Html.ValidationMessageFor(model => model.User.details.DLNum)
</div>
当我提交表单时... model.OnWardDate 正在保存但 model.User.details.DLNum 没有保存
我看过 ViewModel。这是唯一的选择吗?
提前致谢。
【问题讨论】:
标签: c# asp.net-mvc-4 model controllers