2017-07-20 47 views
0

我有一個MVC 5 Application。我有一個從Model View繼承的視圖。我有一個DropDownlistForValidation不能爲空。mvc dropdownlist for validation在提交之前運行

我遇到的問題是,只要我從Dropdownlist中選擇一項,就會執行驗證。當我選擇相同的第一項「選擇國家」,我的意思是,Y選擇相同的默認選項,確認執行,並顯示一條消息"Country is required" ...

我把jquerySubmit按鈕,警報和Controller Method和它沒有達到那一點。

另一個奇怪的是,這個程序是從Entity FrameworkEnterprise Library Store Procedure遷移..

繼承的ViewModel被裝載在控制器從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); 
 
});   

什麼想法?

+0

是「選擇國家」的一部分,從列表中刪除Choose a Country?因爲您可以使用@ Html.DropDownListFor()參數中的默認值 –

+0

是的,從列表中選擇一個國家是系統(0)...我打開下拉列表並且不選擇任何國家,驗證運行。我的問題是爲什麼驗證運行,如果我不提交? – Diego

回答

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> 

,並從列表

+0

它工作...但我仍然不明白什麼是行不通的。也許我失去了一個參考......事實上,我有另一個與這個版本有關的錯誤,我很快就會發布。謝謝 – Diego

相關問題