【发布时间】: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)... 我打开下拉列表并且不选择任何国家,验证运行。我的问题是,如果我不提交,为什么会运行验证?
标签: javascript c# jquery asp.net-mvc validation