2017-12-13 39 views
0

私のアプリでデータアノテーションを使用したいのですが、問題は送信ボタンをクリックして必要なフィールドに入力しないとエラーメッセージが表示されずに送信されます。コントローラでは、model.stateは正常に動作しますが、エラーメッセージが表示されるはずです。データアノテーションにエラーメッセージが表示されない

モデル:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.ComponentModel.DataAnnotations; 

namespace ValidationTest.Models 
{ 
    public class User 
    { 
     [Required(ErrorMessage = "Enter your name.")] 
     public string Name { get; set; } 

     public string Lastname { get; set; } 
    } 
} 

ビュー:

@model ValidationTest.Models.User 

@{ 
    ViewBag.Title = "Index"; 
} 

<!DOCTYPE html> 
<html> 
<head> 
</head> 
<body> 
    @using (Html.BeginForm("Record", "Home")) 
    { 
     @Html.Label("Name:") 
     @Html.TextBoxFor(m => m.Name) 
     @Html.ValidationMessageFor(m => m.Name) 
     <br /> 
     @Html.Label("Lastname:") 
     @Html.TextBoxFor(m => m.Lastname) 
     @Html.ValidationMessageFor(m => m.Lastname) 
     <input type="submit" value="Record" /> 
    } 
</body> 
</html> 

コントローラ:

:スクリプトで

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 
using ValidationTest.Models; 

namespace ValidationTest.Controllers 
{ 
    public class HomeController : Controller 
    { 
     // GET: Home 
     public ActionResult Index() 
     { 
      return View(); 
     } 

     [HttpPost] 
     public ActionResult Record(User usr) 
     { 
      if (ModelState.IsValid) 
      { 
       return Content("It Worked!"); 
      } 

      return RedirectToAction("Index"); 
     } 
    } 
} 

は私が持っているASP.NET MVCプロジェクト内のフォルダ

bootstrap.js

bootstrap.min.js

jqueryの-3.2.1.intellisense.js

jqueryの - 3.2.1.js

jqueryの-3.2.1.min。 JS

jquery-3.2.1.min.map

jqueryの-3.2.1.slim.js

jqueryの-3.2.1.slim.min.js

jqueryの-3.2.1.slim.min.js

modernizr-2.6.2.js

+5

jquery.validate.jsおよびjquery.validate.unobtrusive.jsがクライアント側の検証に必要です –

答えて

0

あなたが追加する必要がありますクライアント側の検証が機能するためのJavaScriptスクリプトのリファレンスはjquery.validate.min.jsおよびjquery.validate.unobtrusive.min.jsです。

0

移動リターンRedirectToAction( "Index"); if(ModelState.IsValid)の内部にあります。 return view();条件の外に追加する必要があります。

関連する問題