2015-06-30 1 views
-1

Итак, в MVC я пытаюсь отправить форму, но даже с определенными полями, и если я дважды удалю свою кнопку отправки, она все равно пройдет.Форма, отправляющая даже с недопустимыми полями MVC razor

мой бритвой синтаксис

@Html.DropDownListFor(model => model.ID, Model.Options, new { id = "DropDown" }) 

мой взгляд модель

[Range(1,Int32.MaxValue)] 
public Int32 ID { get; set; } 

[Required] 
public List<SelectListItem> Options { get; set; } 

и выпадающий заполняется с использованием словаря в мой контроллер, так что каждый элемент списка имеет текст и значение

и здесь является генерируемым html

<select data-val="true" data-val-number="The field ID must be a number." data-val-range="The field ID must be between 1 and 2147483647." data-val-range-max="2147483647" data-val-range-min="1" data-val-required="The ID field is required." id="Company" name="ID"> 
<option selected="selected" value="0">Select</option> 
<option value="10">choice1</option> 
<option value="11">choice2</option> 
<option value="12">choice3</option> 
<option value="13">choice4</option> 
</select> 

Любые идеи, почему это будет подтверждено при первом щелчке, но при втором нажатии на форму отправляется без данных?

+0

Да, это идентификатор, который необходим. Я пробовал это как с тем, что у меня есть, так и с использованием Required, а не Range, но только с помощью Required он сразу же отправит (без выбора опции), потому что он будет считать Select как допустимый вариант, потому что он имеет значение = «0». с диапазоном, в основном говорящим, что требуется, и значение должно быть между 1 и любым значением max int. –

+0

Извините, я случайно дважды щелкнул и удалил комментарий пользователя. Он сказал, что это должен быть идентификатор, который требуется, а не Параметры. Извините, кто бы это ни был, если вы видите это –

+0

У вас есть ClientValidationEnabled установлен в true в web.config? Дважды проверьте свои версии jQuery и jQuery Validate, чтобы убедиться, что они совместимы, и убедитесь, что они включены на странице. –

ответ

0

Я выяснил, что была некоторая функция jQuery, которую я написал, что в основном, если не было выбрано ни одного параметра, он не отправил его, и это вызывало эту проблему. Благодаря всем, что помогло.

Смежные вопросы