2017-03-22 8 views
0

以下は私のコードですが、バリデーターが機能しない理由はわかりません 最初のコードはユーザーモデルで、2番目はホームコントローラーで、最後はインデックスアクション結果のビューです私はMVCに新しいです。あなたが私を助けてください。 おかげフィールドバリデーターがASP.NET MVCで動作しないことが必要

すべての最初の
public class User 
    { 
     [Required(ErrorMessage = "UserName is required")] 
     public string UserName { get; set; } 

     [Required(ErrorMessage = "Password is required")] 
     public string Pasword { get; set; } 
    } 

    public ActionResult Index() 
     { 
      return View(); 
     } 
     [HttpPost] 
     public ActionResult Index(string uname,string pass) 
     { 
      if(ModelState.IsValid) 
      { 
      User user = new User(); 
      user.UserName = uname; 
      user.Pasword = pass; 
      string Username = ConfigurationManager.AppSettings["username"].ToString(); 
      string passwrd = ConfigurationManager.AppSettings["password"].ToString(); 
      if (user.UserName !=null && user.Pasword !=null) 
      { 
       if(user.UserName==Username && user.Pasword==passwrd) 
       { 
        return RedirectToAction("Detail", "Home"); 
       }        
      } 
      } 
      return View("Index"); 
     } 


<hr /> 
     @Html.ValidationSummary(true, "", new { @class = "text-danger" }) 
     <div class="form-group"> 
      @Html.LabelFor(model => model.UserName, htmlAttributes: new { @class = "control-label col-md-2" }) 
      <div class="col-md-10"> 
       @Html.EditorFor(model => model.UserName, new { htmlAttributes = new { @class = "form-control" } })    
       @Html.ValidationMessageFor(model => model.UserName, "", new { @class = "text-danger" }) 
      </div> 
     </div> 

     <div class="form-group"> 
      @Html.LabelFor(model => model.Pasword, htmlAttributes: new { @class = "control-label col-md-2" }) 
      <div class="col-md-10"> 
       @Html.EditorFor(model => model.Pasword, new { htmlAttributes = new { @class = "form-control" } })    
       @Html.ValidationMessageFor(model => model.Pasword, "", new { @class = "text-danger" }) 
      </div> 
     </div> 
+0

jquery min.jsの後にunobtrusive.jsとjquery validation.jsをページまたはレイアウトに追加したことを確認してください。 – Curiousdev

+0

どのモデルをお使いですか?それはUserタイプですか?もう一つは、別のパラメータではなくモデルを提出する方がよいでしょう。 –

+0

どのように動作すると思いますか? –

答えて

2

ModelStateはそれが含まれますModelStateと同じビューにリダイレクトされますInvalidであれば、あなたはそれがチェックされます

[HttpPost] 
     public ActionResult Index(User user) 
     { 
      if(!ModelState.IsValid) 
      { 
       return View("Index",user); 
      } 

      // your code here if model is valid 
      return View("Index"); 
     } 

のように代わりに個々のプロパティのmodelを送信する必要がありkeyvalueしたがって、プロパティの検証が失敗した場合、その名前はkeyになり、メッセージはkeyvalueになり、検証メッセージにはording to keys(property names)

+0

大変ありがとうございます@Usman –

関連する問題