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));
}
}