0
我有一个使用我创建的视图模型的强类型视图。我在我的viewmodel中有一个日期字段,它是我的主要模型的一个属性的格式化显示。在POST编辑动作中(我遵循书呆子晚餐教程)参数是int id, FormCollection collection
。使用我的存储库查找ID的模型,我留下来使用FormCollection捕获我的附加viewmodel属性。一定会有更好的办法?也许只是修改参数来接受我的viewmodel而不是int id?为什么没有书呆子晚餐这样做,而不是依赖于UpdateModel()?我的UpdateModel是否不正确,因为没有拾取视图模型属性并进行相应更新?表单提交后捕获视图模型属性
下面的示例。 ValidateInput(假)是为我的WYSIWYG编辑器
[Authorize(Roles = "Author,Admin"), HttpPost, ValidateInput(false)]
public virtual ActionResult Edit(int id, FormCollection collection)
{
Spotlight spotlight = spotlightRepository.GetSpotlight(id);
try
{
spotlight.ModifiedDate = DateTimeOffset.Now;
// I dont like this line
spotlight.PublishDate = Convert.ToDateTime(collection["PublishDate"]);
UpdateModel(spotlight, "Spotlight");
spotlightRepository.Save();
return RedirectToAction("Details", new { id = spotlight.SpotlightID });
}
catch
{
ModelState.AddRuleViolations(spotlight.GetRuleViolations());
return View(new SpotlightFormViewModel(spotlight));
}
}