C# 表单提交,即使使用无效字段MVC razor

C# 表单提交,即使使用无效字段MVC razor,c#,jquery,validation,asp.net-mvc-4,razor,C#,Jquery,Validation,Asp.net Mvc 4,Razor,因此,在MVC中,我试图提交表单,但即使有某些字段是必需的,如果我按两次提交按钮,表单仍会通过 我的剃须刀语法 @Html.DropDownListFor(model => model.ID, Model.Options, new { id = "DropDown" }) 我的视图模型 [Range(1,Int32.MaxValue)] public Int32 ID { get; set; } [Required] public List<SelectListItem>

因此,在MVC中,我试图提交表单,但即使有某些字段是必需的,如果我按两次提交按钮,表单仍会通过

我的剃须刀语法

 @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; }
[范围(1,Int32.MaxValue)]
公共Int32 ID{get;set;}
[必需]
公共列表选项{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>

挑选
选择1
选择2
选择3
选择4

你知道为什么它会在第一次单击时进行验证,但在第二次单击时表单提交时没有数据吗?

我发现有一个jQuery函数,我写过,基本上如果没有选择任何选项,它就不会提交,这就是问题的原因。感谢所有这些帮助。

是的,这是所需的ID。我已经用我所拥有的和使用Required而不是Range进行了尝试,但只要使用Required,它就会立即提交(不选择选项),因为它会将Select计算为有效选项,因为它的值为=“0”。对于范围,它基本上是说它是必需的,值必须介于1和最大int值之间。对不起,我无意中双击并删除了用户的注释。它说的是它应该是需要的ID,而不是选项。很抱歉,如果您看到了这一点,您是否在web.config中将ClientValidationEnabled设置为true?仔细检查jQuery和jQuery Validate的版本以确保它们兼容,并确保它们包含在页面中。是ClientValidationEnabled在projects Web.config中设置为true,在my specific areas文件夹的Web.config中设置为true,但是我假设,由于这对于generic Web.config是正确的,所以它将是相同的?我还假设jQuery和jQuery Validate的版本是兼容的,因为它们在其他领域工作。