當想從「後端」填充某些模型值時,使用什麼樣的設計範例?例如我有電影DB;用戶可以創建電影。我想記錄誰創建了電影,CreateOn,LastModified。我的模型有UserId,CreatedOn,LastModified,...(名字,流派等)。生成的默認視圖具有所有這些字段;我從創建視圖中刪除了CreatedOn,LastModified,UserId;現在當事情回到控制器中的創建功能時,模型無效。我通過清除功能清除了模型錯誤,然後在控制器中填入這3個值。但是,這是不對的;清除清除任何其他驗證錯誤。MVC在控制器中填寫值
public ActionResult Create([Bind(Include = "Name,Description,Genre")] Movie movie)
{
ApplicationUser user = System.Web.HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>().FindById(System.Web.HttpContext.Current.User.Identity.GetUserId());
ModelState.Clear();
movie.UserId = user.Id;
movie.CreatedOn = DateTime.UtcNow;
movie.LastModified = DateTime.UtcNow;
if (ModelState.IsValid)
{
db.Movies.Add(movie);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(movie);
}
你能展示你的模型以及你會得到的錯誤嗎?可能會有很多事情發生:缺少必需的字段,在檢查「ModelState.IsValid」之前映射屬性(其中一個屬性可能*不是有效的)等等。 –
[有沒有辦法忽略在ASP.NET MVC3中驗證表單時的一些屬性(在POCO上)?](http://stackoverflow.com/questions/5209252/is-there-any-way-to-ignore-some-properties-on-a -poco-when-validationating-a-in-in) –
編輯時總是使用視圖模型 - [MVC中的ViewModel是什麼?](http://stackoverflow.com/questions/11064316/what-is-viewmodel-in- mvc) –