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

标签: javascript c# jquery asp.net-mvc validation


【解决方案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

【讨论】:

  • 它有效......但我仍然不明白什么是无效的。也许我失去了参考......事实上,这个版本发生了另一个错误,我很快就会发布。谢谢
猜你喜欢
  • 2014-02-12
  • 2020-01-22
  • 1970-01-01
  • 1970-01-01
  • 2015-03-29
  • 1970-01-01
  • 2016-12-30
  • 2014-08-25
  • 2012-11-20
相关资源
最近更新 更多