2009-09-17 9 views

ответ

5

По существу, он выводит

<form> 

тег в выходной HTML. Тег формы требуется, если ваши POST-страницы (т. Е. Нажата кнопка для отправки формы), чтобы браузер знал, где отправить форму. Причина, по которой он может сейчас работать для вас, заключается в том, что у вас могут не быть кнопок - ссылки jsut (я не знаю, что ваше приложение, так что просто угадайте здесь).

Вкратце: если вы хотите, чтобы предоставить форму для действия, да, этот тег не требуется. Если вы все это делаете по ссылкам, то вам не нужно , но вам нужно тег формы, и поэтому BeginForm действительно не нужен.

HTH.

P.S. прочитайте сообщения блога Скотта Гатри на ASP.NET MVC, они действительно помогите вам, чтобы вы начали.

+0

Не совсем уверен, как это отвечает на реальный вопрос. –

+0

Я могу написать свою собственную форму и теги действий, и они будут работать нормально. Весь смысл этого метода состоит в том, чтобы абстрагироваться от функциональности и сделать ее адаптируемой. –

0

Это совсем не обязательно. Это просто помощник, который обрабатывает создание тегов формы. Это хорошая идея использовать его. Моя интуиция говорит, что они улучшат этот помощник для обработки таких вещей, как атаки XSS и т. Д., Которые вам в настоящее время приходится иметь дело с использованием помощника AntiForgeryToken и связанного с ним атрибута.

3

BeginForm() просто выписывает тег формы, используя предоставленные ему параметры. Если у вас нет формы, вы не будете или будете делать все ваши взаимодействия с AJAX, вам может и не понадобится. Если у вас есть только ссылки на странице, то форма не нужна. Однако, если вы не используете AJAX, вы не можете выполнять POST-запросы к действиям вашего контроллера, не используя его, чтобы ввести свой тег формы или ввести свой тег формы вручную.