2016-03-22 26 views
0

擁有包含表單的部分視圖,但似乎無法獲取驗證錯誤以顯示。從部分視圖中看不到驗證錯誤

模型

public class HomeModel 
{ 
    public LoginModel LoginModel { get; set; } 
} 

public class LoginModel 
{ 
    [Required] 
    [Display(Name = "Email")] 
    public string Username { get; set; } 

    [Required] 
    public string Password { get; set; } 
} 

Index.cshtml:

@model MyApp.Models.HomeModel 

@{     
    await Html.RenderPartialAsync("_LoginPartial", Model.LoginModel); 
} 

的HomeController

public IActionResult Index() 
{ 
    return View(new HomeModel() 
    { 
     LoginModel = new LoginModel() 
    }); 
}   

[HttpPost] 
public IActionResult Login(LoginModel model) 
{ 
    return View("Index", new HomeModel() 
    { 
     LoginModel = model 
    }); 
} 

_LoginPartial

@model MyApp.Models.LoginModel 
<form asp-action="Login" asp-controller="Home" method="post" role="form" style="width:70%;margin: 0 auto;"> 
    <div style="display:none" asp-validation-summary="ValidationSummary.All" class="alert alert-danger fade in"> 
     <a href="#" class="close" data-dismiss="alert">&times;</a> 
     <strong>Error!</strong> A problem has been occurred while submitting your data. 
    </div> 
    <div class="form-group" style="text-align:left"> 
     <label asp-for="Username" style="font-size:22px;" class="control-label"></label> 
     <input asp-for="Username" type="text" class="form-control" /> 
    </div> 
    <div class="form-group" style="text-align:left"> 
     <label asp-for="Password" style="font-size:22px;" class="control-label"></label> 
     <input asp-for="Password" type="password" class="form-control" /> 
    </div> 
    <div class="spacer-15"></div> 
    <div class="form-group" style="font-size:22px;"> 
     <button type="submit" 
       style="background-color: Transparent; 
         background-repeat:no-repeat; 
         border: none; 
         cursor:pointer; 
         overflow: hidden; 
         outline:none;" value="Login"> 
      <img src="~/images/flower.png" />Next 
     </button> 
    </div> 
</form> 
+0

這是什麼版本的MVC? – Chad

+0

@Chad版本是6.0 rc1 –

+0

@rashfmnb - 它在那裏,你能看不到嗎? –

回答

0

它看起來像你缺少了一些東西。您的每個輸入都需要一個使用asp-validation-for的對應驗證元素。

<div class="form-group" style="text-align:left"> 
    <label asp-for="Username" style="font-size:22px;" class="control-label"></label> 
    <input asp-for="Username" type="text" class="form-control" /> 
    <span asp-validation-for="Username" class="text-danger"></span> 
</div> 

同樣,如果你在使用jQuery驗證計劃,你應該添加下列到您的_Layout.cshtml文件中的環境要素。

<script src="~/lib/jquery-validation/dist/jquery.validate.js"></script> 
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script> 
+0

果然。我原以爲我已經把asp驗證 - 放在那裏了,但我一定在某個時候刪除了它。 –