У меня строго типизированное представление, использующее созданную мной модель представления.У меня есть поле даты в моей модели представления, которое является отформатированным отображением свойства моей основной модели.В действии POST Edit (я следовал за руководством к обеду с ботаником) параметры int id, FormCollection collection
.Используя свой репозиторий, я ищу модель по идентификатору, и у меня остается захватить мои дополнительные свойства viewmodel, используя FormCollection.Должен быть лучший способ?Может быть, просто измените параметры, чтобы принять мою модель представления вместо int id?Почему ботаник не делает это вместо того, чтобы полагаться на UpdateModel ()?Является ли моя UpdateModel неправильной из-за того, что она не подняла свойства модели представления и не обновила соответственно?
Пример ниже.ValidateInput (false) для моего редактора 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));
}
}