mvc dropdownlistfor 验证在提交前运行

Posted

技术标签:

【中文标题】mvc dropdownlistfor 验证在提交前运行【英文标题】:mvc dropdownlistfor validation run before submitting 【发布时间】:2017-12-26 12:58:04 【问题描述】:

我有一个MVC 5 Application。我有一个继承自Model View 的视图。我有一个DropDownlistForValidation,不能为空。

我遇到的问题是,只要我从Dropdownlist 中选择一个项目,验证就会执行。当我选择相同的第一项“Choose a Country”时,我的意思是,y 选择相同的默认选项,执行验证并显示消息 "Country is required"...

我在jquery Submit 按钮和Controller Method 上发出警报,但它没有达到那个点。

另一个奇怪的事情是,这个应用程序是从Entity Framework 迁移到Enterprise Library Store Procedure ..

继承ViewModelStore 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 当值在数组中时被选中

Asp.Net MVC中DropDownListFor的用法(转)

如何使用对象 MVC 5 C# 的 Javascript 列表填充剃刀 DropDownListFor