2017-07-20 7 views
0

私にはMVC 5 Applicationがあります。私はModel Viewから継承するビューを持っています。私はDropDownlistForValidationがありますが、それは空ではありません。提出前に検証を実行するmvc dropdownlistfor

問題は、Dropdownlistからアイテムを選択するとすぐに検証が実行されることです。私は「国を選択」と同じ最初の項目を選択すると、私は意味し、yは同じデフォルトのオプションを選択し、検証メッセージ"Country is required"を実行し、表示さ...

私はjquerySubmitボタンとController Methodに警告を入れてその点に達していない。

別の好奇心が強い事は

Viewを継承Model

Store Procedure代わりの EntityFraworkからコントローラにロードされます。..このアプリは Entity Frameworkから Enterprise Library Store Procedureへの移行であるということです。

これは、ビューに対して透過的でなければなりません。しかし、このエラーはこのversiónでのみ発生します。それは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

はい、リストから国を選択してください(...)ドロップダウンリストを開き、国を選択しないで、検証が実行されます。提出しなければ私の質問はなぜ検証が実行されるのですか? – 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

それは動作します...しかし、私はまだ動作していないことを理解していません。たぶん私は参照を失っている...実際には、私はこのversiónで起こっている別のエラーが、私はすぐに転記しています。ありがとう – Diego

関連する問題