2017-01-14 1 views
0

ASP.NET 코어 MVC 사용 클라이언트 측 유효성 검사를 렌더링하기 위해 부트 스트랩 양식 그룹 및 양식 컨트롤과 주석이있는 모델을 사용하려고합니다. 그것은 작동하지 않습니다. 그러나 Editor-For를 사용하면 유효성 검사가 올바르게 작동합니다. 내 스크립트를 들어 내가 사용하고 있습니다 :data-val 및 data-val-required가 클라이언트 측에서 생성되지 않습니다.

내 모델이

public class LoginViewModel 
{ 
    [Required] 
    public string Username { get; set; } 
    [Required] 
    public string Password { get; set; } 
    [Required] 
    public string Mystring { get; set; } 
} 

내보기처럼 보이는

"jquery": "~3.1.1", 
"jquery-validation": "~1.15.1", 
"jquery-validation-unobtrusive": "~3.2.6" 

보이는 등 : 가져 오기 소스에

@model PrioritizedListUI.Models.LoginViewModel 
 
@{ 
 
    ViewBag.Title = "Log in"; 
 
} 
 

 
<div class="row"> 
 
    <div class="col-md-6 col-md-offset-3"> 
 
     <h3>Login</h3> 
 
     <form method="post" novalidate> 
 
      <div asp-validation-summary=""></div> 
 
      <div class="form-group"> 
 
       <label asp-for="Username"></label> 
 
       <input asp-for="Username" class="form-control" /> 
 
       <span asp-validation-for="Username"></span> 
 
      </div> 
 
      <div class="form-group"> 
 
       <label asp-for="Password"></label> 
 
       <input type="password" asp-for="Password" class="form-control" /> 
 
       <span asp-validation-for="Password"></span> 
 
      </div> 
 
      <div class="form-group"> 
 
       @Html.LabelFor(model => model.Mystring, htmlAttributes: new { @class = "control-label col-md-2" }) 
 
       <div class="col-md-10"> 
 
        @Html.EditorFor(model => model.Mystring, new { htmlAttributes = new { @class = "form-control" } }) 
 
        @Html.ValidationMessageFor(model => model.Mystring, "", new { @class = "text-danger" }) 
 
       </div> 
 
      </div> 
 
      <div class="form-group"> 
 
       <input type="submit" value="login" class="btn btn-success" /> 
 
      </div> 
 
     </form> 
 
    </div> 
 
</div>

페이지의 내용은 다음과 같습니다.

<!DOCTYPE html> 
 

 
<html> 
 

 
<head> 
 
    <meta name="viewport" content="width=device-width" /> 
 
    <title>Log in</title> 
 

 
    <link rel="stylesheet" href="/lib/bootstrap/dist/css/bootstrap.min.css" /> 
 

 
</head> 
 

 
<body> 
 
    <h3>Title</h3> 
 
    <div class="navbar navbar-inverse navbar-fixed-top"> 
 
    <div class="container"> 
 

 
     <div class="navbar-header"> 
 
     <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> 
 
      <span class="icon-bar"></span> 
 
      <span class="icon-bar"></span> 
 
      <span class="icon-bar"></span> 
 
     </button> 
 

 
     </div> 
 
     <div class="navbar-collapse collapse"> 
 
     <ul class="nav navbar-nav"> 
 
      <li><a href="/">Home</a> 
 
      </li> 
 
      <li class="dropdown"> 
 
      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Search<span class="caret"></span></a> 
 
      <ul class="dropdown-menu" role="menu"> 
 
       <li><a href="/SearchLine">Lines</a> 
 
       </li> 
 
       <li><a href="/SearchGuidelineNotes">Guideline Notes</a> 
 
       </li> 
 
      </ul> 
 
      </li> 
 
      <li><a href="/ListVersion">Admin</a> 
 
      </li> 
 
      <li><a href="/Home/About">About</a> 
 
      </li> 
 
      <li><a href="/Home/Contact">Contact</a> 
 
      </li> 
 
     </ul> 
 
     </div> 
 
    </div> 
 
    </div> 
 
    <div class="container body-content"> 
 
    <section class="content-wrapper main-content clear-fix"> 
 

 
     <div class="row"> 
 
     <div class="col-md-6 col-md-offset-3"> 
 
      <h3>Login</h3> 
 
      <form method="post" novalidate> 
 
      <div asp-validation-summary=""></div> 
 
      <div class="form-group"> 
 
       <label asp-for="Username"></label> 
 
       <input asp-for="Username" class="form-control" /> 
 
       <span asp-validation-for="Username"></span> 
 
      </div> 
 
      <div class="form-group"> 
 
       <label asp-for="Password"></label> 
 
       <input type="password" asp-for="Password" class="form-control" /> 
 
       <span asp-validation-for="Password"></span> 
 
      </div> 
 
      <div class="form-group"> 
 
       <label class="control-label col-md-2" for="Mystring">Mystring</label> 
 
       <div class="col-md-10"> 
 
       <input class="form-control text-box single-line" data-val="true" data-val-required="The Mystring field is required." id="Mystring" name="Mystring" type="text" value="" /> 
 
       <span class="field-validation-valid text-danger" data-valmsg-for="Mystring" data-valmsg-replace="true"></span> 
 
       </div> 
 
      </div> 
 
      <div class="form-group"> 
 
       <input type="submit" value="login" class="btn btn-success" /> 
 
      </div> 
 
      </form> 
 
     </div> 
 
     </div> 
 
    </section> 
 
    <hr /> 
 
    <footer> 
 
     <p>&copy; 2017 - Alderglen</p> 
 
    </footer> 
 
    </div> 
 

 
    <script type="text/javascript" src="/lib/jquery/dist/jquery.min.js"></script> 
 
    <script type="text/javascript" src="/lib/jquery-validation/dist/jquery.validate.min.js"></script> 
 
    <script type="text/javascript" src="/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script> 
 

 

 
</body> 
 

 
</html>

나는 내 머리를 건 드리는되었지만 내가 놓친 게 무엇인지 알아낼 수 없습니다. 어떤 도움을 주시면 감사하겠습니다.

+0

MVC6이라는 용어를 사용하지 마십시오. 더 이상 MVC6이 없습니다. 단지 ASP.NET Core MVC (1.0 & 1.1) – Tseng

답변

0

_ViewImports.cshtml에 태그 도우미를 추가 했습니까? 그렇지 않으면 뷰 폴더 아래에 면도기 HTML 파일을 만들고 이름을 _ViewImports.cshtml로 지정합니다. 그리고 다음 코드를 추가하십시오.

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 
@addTagHelper "*, <YOUR_WEB_APP_NAME>" 

그리고 다시 시도하십시오.

+0

그랬습니다. 정말 고맙습니다! – user7380985

+0

@ user7380985 답변으로 표시하십시오. – Anuraj

관련 문제