【发布时间】:2015-06-30 20:01:03
【问题描述】:
因此,在 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; }
并且下拉列表使用我的控制器中的字典填充,因此每个列表项都有文本和值
这是生成的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>
任何想法为什么它会在第一次点击时验证但在第二次点击时表单提交时没有数据?
【问题讨论】:
-
是的,它是所需的 ID。我已经用我所拥有的和使用Required而不是Range进行了尝试,但是仅使用Required它会立即提交(不选择选项),因为它会将Select视为有效选项,因为它的值=“0”。范围基本上是说它是必需的,并且该值必须介于 1 和最大 int 值之间。
-
对不起,我不小心双击并删除了用户的评论。它所说的是它应该是所需的 ID,而不是选项。如果你看到这个,对不起,无论是谁
-
您是否在 web.config 中将 ClientValidationEnabled 设置为 true?仔细检查您的 jQuery 和 jQuery Validate 版本以确保它们兼容,并确保它们包含在页面中。
-
Yes ClientValidationEnabled 在项目 Web.config 中设置为 true,在我的特定区域文件夹的 web.config 中它不是,但我假设因为它对于通用 Web.config 它是 true会一样吗?
-
另外我假设 jQuery 和 jQuery Validate 的版本是兼容的,因为它们在其他领域工作。
标签: c# jquery validation asp.net-mvc-4 razor