2016-12-09 15 views
-2

私はhtmlHelper ValidationMessageForを使用しています。検証エラーが発生しましたが、要求がサーバーに送信され、ModelState.IsValidがtrueになりました。何らかの種類の検証エラーがある場合、ModelState.IsVaidがfalseになる可能性がありますか?私はクライアント側でそれを行うことができますが、私はそれをサーバー側で開発したいと思います。あなたが代わりにHtml.TextBoxForの仕事に検証にHtml.EditorForを使用する必要がMVC検証エラーがありますが、リクエストがサーバーに送信され、ModelState.IsValidがtrueです。

[DataType(DataType.EmailAddress)] 
[EmailAddress(ErrorMessage = "Wrong Email")] 
public string ElectronicMailAddress { get; set; } 

ビュー

@Html.LabelFor(model => model.ElectronicMailAddress, new { @class = "control-label"}) 
@Html.TextBoxFor(model => model.ElectronicMailAddress, new { @class = "form-control"}) 
@Html.ValidationMessageFor(model => model.ElectronicMailAddress, "", new { @class = "text-danger" }) 

コントローラ

[HttpPost] 
     public JsonResult CallingFunction() 
     { 
      if (ModelState.IsValid) 
      {........} 
} 
+0

「リクエストはサーバーに送られました」と説明してください。それはフォームPOSTがコントローラに送信されたということです(これは正常な動作であり、どのようにするべきか)。あるいは、コントローラがアイテムが何も間違っているかのように処理したかどうか(おそらく、if(ModelState.IsValid){...} 'がスローされた)少なくともプログラムしなければならないものです。 –

+0

'ModelState.IsValid'の使い方の詳細はこちらをご覧ください:https://www.asp.net/mvc/overview/older-versions/getting-started-with-aspnet-mvc4/adding-validation-to-the -モデル –

+0

@Peter BIに私の質問を編集 –

答えて

0

。また、以下のスクリプトがあなたのページにロードされていることを確認する必要があります。バンドルの構文または通常の参照のいずれかで

<script src="~/Scripts/jquery.min.js"></script> // your version of Jquery 
<script src="~/Scripts/jquery.validate.min.js"></script> 
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script> 
+0

さえHtml.EditorForはHtml.TextBoxForと同じように動作し、はい、これらのスクリプトをすべて私のcshtmlで使用しています。検証エラー "Wrong Email"が表示されますが、その後にリクエストがサーバーに送信されました。 modelstate.isvalidがtrueになります。私はHtml.EditorForを使用する –

関連する問題