Нужен ли Html.BeginForm ()? - PullRequest
       17

Нужен ли Html.BeginForm ()?

2 голосов
/ 18 сентября 2009

Что делает Html.BeginForm() и нужно ли это?

Ответы [ 3 ]

5 голосов
/ 18 сентября 2009

По сути, это выводит

<form>

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

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

НТН.

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

3 голосов
/ 18 сентября 2009

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

0 голосов
/ 18 сентября 2009

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

...