ASP.NET MVC 3 переопределить Html.BeginForm - PullRequest
3 голосов
/ 24 октября 2011

У меня есть некоторые файлы Javascript для проверки, которые должны содержать все страницы, использующие форму. Идея состоит в том, чтобы каким-то образом переопределить Html.BeginForm и в этом переопределении добавить необходимый Javascript в мой ResourceManager (который в конечном итоге запишет все ссылки на HTML).

Могу ли я переопределить Html.BeginForm или это единственный вариант для создания другого ExtensionMethod, например Html.MyBeginForm, который включает в себя JS, а затем вызывает исходный BeginForm?

Ответы [ 2 ]

0 голосов
/ 24 октября 2011

Вам не нужно ничего переопределять, пока вы включаете свой javascript в свой мастер-файл (или _Layout.cshtml или _Layout.vbhtml).Ненавязчивый AJAX, вероятно, лучший путь.Просто прикрепите к форме различные свойства, используя соответствующую перегрузку.

Если вы хотите прикрепить файлы javascript только к представлениям, имеющим формы, вы можете включить условные разделы в свой мастер или просто выбрать другой мастер на основекатегория под вопросом.

Мастера могут быть другими мастерами.Вы можете иметь мастера для форм и мастера для неформ.Оба могут использовать общий базовый мастер, который содержит информацию о макете.

0 голосов
/ 24 октября 2011

Могу ли я переопределить Html.BeginForm или это единственный вариант для создания другого ExtensionMethod вроде Html.MyBeginForm

Вы не можете переопределить вывод Html.BeginForm. Вам нужно будет написать собственный метод расширения. Или, еще лучше, используйте ненавязчивый JavaScript, чтобы прикрепить пользовательскую логику к вашей форме. Атрибуты Html5 data- * являются отличным способом присоединить метаданные к элементу DOM, который может быть незаметно использован JavaScript с помощью функции .data(). Это способ ненавязчивой проверки на стороне клиента и ненавязчивой работы AJAX в ASp.NET MVC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...