検証

0

私はそれは私が正しい方法ですべてをかけるときしかし、私は、たとえばなかった場合はそれが正しく動作するブートストラップモーダルページに検証

@using (Html.BeginForm("Create", "Request")) 
{ 
    @Html.AntiForgeryToken() 
    <div class="form-group"> 

     <div class="col-md-10"> 

     @Html.EditorFor(model => model.Request.FirstName, new { htmlAttributes = new { @class = "form-control" } }) 

     @Html.ValidationMessageFor(model => model.Request.FirstName, "", new { @class = "text-danger" , placeholder = "FirstName" }) 

     </div> 

    </div> 
    //Omit other form groups for summary 
} 

あるフォームを持っています私の名前を書くそれdosent私を与えるエラーバック。

私はいくつかの質問があります: 投稿する前に入力を検証することは可能ですか?jqueryの検証は機能していないようですか?

2それはそれは私のエラーが表示されない理由、それは

3を投稿する前に開いていたその特定のモーダルに戻ってくることは可能ですか?私はErrorResource.resxであり、エラーテキストを表示したい

public class Request 
{ 
    //pkey 
    public virtual int Id { get; set; } 
    //Fkey 
    public virtual int TourId { get; set; } 

    [Required] 
    [MaxLength(150, ErrorMessageResourceType = typeof(ErrorResource), ErrorMessageResourceName = "CheckLenght")] 
    public virtual string FirstName { get; set; } 


    [Required] 
    [MaxLength(150, ErrorMessageResourceType = typeof(ErrorResource), ErrorMessageResourceName = "CheckLenght")] 
    public virtual string LastName { get; set; } 

    [Required] 
    [EmailAddress(ErrorMessageResourceType = typeof(ErrorResource), ErrorMessageResourceName = "Email")] 
    [MaxLength(150, ErrorMessageResourceType = typeof(ErrorResource), ErrorMessageResourceName = "CheckLenght")] 
    public virtual string Email { get; set; } 

    [Required] 
    public virtual string Phone { get; set; } 

    [MaxLength(100000000, ErrorMessageResourceType = typeof(ErrorResource), ErrorMessageResourceName = "CheckLenght")] 
    public virtual string Comment { get; set; } 


    public virtual bool FrequentTraveler { get; set; } 

    [Required] 
    [Range(1, 500000)] 
    public virtual int TravelersCount { get; set; } 

    [DataType(DataType.Date)] 
    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")] 
    public virtual string Date { get; set; } 

    public virtual bool ContactTimePreference { get; set; } 

    [MaxLength(150, ErrorMessageResourceType = typeof(ErrorResource), ErrorMessageResourceName = "CheckLenght")] 
    public virtual string Country { get; set; } 


    public virtual bool Archived { get; set; } 
} 

この

は私のモデルです。

、これが私の方法

[HttpPost] 
    [ValidateAntiForgeryToken] 
    public ActionResult Create([Bind(Include = "Id,TourId,FirstName,LastName,Email,Phone,Comment,FrequentTraveler,TravelersCount,Date,ContactTimePreference,Country,Archived")] Request request) 
    { 
     if (ModelState.IsValid) 
     { 
      db.Requests.Add(request); 
      db.SaveChanges(); 

      TempData["ResultMessage"] = "Form Posted successfully."; 
      return RedirectToAction("Index", "Tour", new { country = TempData["Country"] }); 
     } 
     TempData["ResultMessage"] = "Try Again!"; 
     return RedirectToAction("Index", "Tour", new { country = TempData["Country"] }); 
    } 

を作成され、必要に応じて、これは私の頭のタグです:

<html> 
<head> 
<meta charset="utf-8" /> 
<meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <link href="~/Content/Site.css" rel="stylesheet" type="text/css" /> 
    <link href="~/Content/bootstrap.min.css" rel="stylesheet" type="text/css" /> 
    <script src="~/Scripts/modernizr-2.6.2.js"></script> 
</head> 
<body> 
     <script src="~/Scripts/jquery-1.10.2.min.js"></script> 
     <script src="~/Scripts/bootstrap.min.js"></script> 
     <script src="~/scripts/myjs.js"></script> 
</body> 
</html> 

いくつかのいずれかが変更されるべきものを私に言うことができるならば、私は感謝しています。おかげ

+0

スクリプトファイルの一部を見逃している可能性があります –

+2

あなたのビューやレイアウトに 'jquery- {version} .js'、' jquery.validate.js'、 'jquery.validate.unobtrusive.js'を含める必要があります重複はありません) –

+0

おかげさまで解決しました。可能であればお答えください。ありがとう –

答えて

2

あなたは、クライアント側の検証を得るために

<script src="~/Scripts/jquery.validate.js"></script> 
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script> 

両方(<script src="~/Scripts/jquery-1.10.2.min.js"></script>後)を追加する必要があります。

サイドノート:bundlesを使用して、ビューとレイアウト内のスクリプトとCSSファイルを管理することをお勧めします。