При принятии решения о том, какой ActionResult возвращать из действия контроллера, я решил использовать тернарные операторы, а не более длинные if-else. Вот моя проблема ...
этот код работает
return
ModelState.IsValid ?
(ActionResult) RedirectToAction("Edit", new { id = id }) :
View(new EditViewModel(updatedCategory));
, но не
return
ModelState.IsValid ?
RedirectToAction("Edit", new { id = id }) :
View(new EditViewModel(updatedCategory));
. Мне бы не пришлось выполнять явное приведение при использовании if-else. Плюс как RedirectToAction (), так и View () возвращают производную ActionResult.
Мне нравится краткость этого кода, но такое приведение не кажется правильным. Может ли кто-нибудь просветить меня?
Хотя я уверен, что это очевидно, EditViewModel - это модель представления для моего действия Edit, а updatedCategory - это объект EF4. Но я не думаю, что это имеет отношение к проблеме.
Хорошо ... Я просто понял, что то, что я делал, не нужно, потому что, несмотря на то, что я возвращаюсь к действию Edit с updatedCategory, мне не нужно убедитесь, что Модель действительна. Мне все еще интересно узнать ответ на вопрос, может ли кто-нибудь помочь.