Подтвердить что ты не робот

Как добавить атрибуты данных в Html.BeginForm

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

@using (Html.BeginForm("Form/", "Quote", FormMethod.Post, new { enctype = "multipart/form-data" }))

Однако, поскольку он использует jQuery mobile, я включил Ajax так, чтобы переход между страницами был приятным и плавным. Это вызвало проблему в том, что моя форма не будет загружать изображения, поскольку вы не можете загружать файлы с помощью ajax. Мне нужно добавить атрибут data-ajax="false" в эту форму, чтобы он мог загружать мои файлы.

Кто-нибудь знает, как я это делаю, поскольку я пробовал несколько вариантов следующего, но не смог заставить его работать:

@using (Html.BeginForm("Form/", "Quote", FormMethod.Post, new { enctype = "multipart/form-data", "data-ajax" = "false" }))
4b9b3361

Ответ 1

Хитрость заключается в использовании подчеркивания вместо дефиса:

new { enctype = "multipart/form-data", data_ajax = "false" }

Дефис не допускается как часть идентификатора С#. Структура MVC автоматически трансформирует подчеркивание.

Ответ 2

Вы можете использовать другую перегрузку:

@using (Html.BeginForm("Form", "Quote", FormMethod.Post, new Dictionary<string, object> { { "enctype", "multipart/form-data" }, { "data-ajax", "false"} }))