mvc dropdownlistfor 验证在提交前运行
Posted
技术标签:
【中文标题】mvc dropdownlistfor 验证在提交前运行【英文标题】:mvc dropdownlistfor validation run before submitting 【发布时间】:2017-12-26 12:58:04 【问题描述】:我有一个MVC 5 Application
。我有一个继承自Model View
的视图。我有一个DropDownlistFor
和Validation
,不能为空。
我遇到的问题是,只要我从Dropdownlist
中选择一个项目,验证就会执行。当我选择相同的第一项“Choose a Country”时,我的意思是,y 选择相同的默认选项,执行验证并显示消息 "Country is required"
...
我在jquery
Submit
按钮和Controller Method
上发出警报,但它没有达到那个点。
另一个奇怪的事情是,这个应用程序是从Entity Framework
迁移到Enterprise Library Store Procedure
..
继承View
的Model
从Store Procedure
而不是EntityFrawork
加载到控制器上。
这对视图应该是透明的。但是这个错误只发生在这个版本中。它适用于Entity Framework
。
这是部分代码..
@model AvivaVozSP.Models.UserViewModel
@using System.Web.Mvc.Ajax
<form action="@Url.Action("Create", "Users")" id="form" enctype="multipart/form-data" method="post">
<div class="DvCampoUp">
@html.DropDownListFor(m => m.user.Country_id, Model.AvailableCountries, new @class = "StyleOb Required txtFill", @onclick = "ocultar();", @onchange = "javascript:GetState(this.value);", @id = "Country_id" )
</div>
<div class="DvCampoUp">
@Html.ValidationMessageFor(model => model.user.Country_id, "", new @class = "text-danger" )
</div>
</form>
<script language="javascript" type="text/javascript">
$('form').submit(function (event)
alert(1);
);
有什么想法吗?
【问题讨论】:
是列表中的“选择国家”的一部分吗?因为您可以使用 @Html.DropDownListFor() 参数中的默认值 是的,从列表中选择一个国家是 ítem(0)... 我打开下拉列表并且不选择任何国家,验证运行。我的问题是,如果我不提交,为什么会运行验证? 【参考方案1】:像这样使用默认值
<div class="DvCampoUp">
@Html.DropDownListFor(m => m.user.Country_id, Model.AvailableCountries,"Choose a Country", new @class = "StyleOb Required txtFill", @onclick = "ocultar();", @onchange = "javascript:GetState(this.value);", @id = "Country_id" )
</div>
并从列表中删除Choose a Country
【讨论】:
它有效......但我仍然不明白什么是无效的。也许我失去了参考......事实上,这个版本发生了另一个错误,我很快就会发布。谢谢以上是关于mvc dropdownlistfor 验证在提交前运行的主要内容,如果未能解决你的问题,请参考以下文章
MaskedTextBoxFor 在提交 MVC Razor 视图后失去价值
剑道 DropDownListFor() 与 ASP.NET-MVC
如何在MVC 5中使用DropdownListFor在多个DropDownList中选择值
MVC5 Razor html.dropdownlistfor set 当值在数组中时被选中