Если вы посмотрите на пример NerdDinner по созданию и редактированию обедов, то увидите, что они используют частичный (ViewUserControl или ASCX) DinnerForm, чтобы объединить функциональность создания и редактирования обедов в одном файле, потому что он очень важен, и они используют его используя RenderPartial ("DinnerForm").
Этот подход мне подходит, но я столкнулся с проблемой, когда нужно добавить дополнительные значения маршрута или html-свойства в тег Form.
Принимает текущее действие и контроллер автоматически:
<% using (Html.BeginForm()) { %>
Однако, если я использую другую перегрузку BeginForm (), которая позволяет передавать в enctype или любой другой атрибут, я должен сделать это следующим образом:
<% using ("Create", "Section", new { modal = true }, FormMethod.Post, new { enctype = "multipart/form-data" }))
и, как вы можете видеть, мы теряем возможность автоматически определять, в каком представлении мы вызываем RenderPartial ("OurCreateEditFormPartial"). У нас не может быть жестко запрограммированных значений, потому что в режиме «Правка» эта обратная передача не будет выполнена или не вернется к правильному действию контроллера.
Что мне делать в этом случае?