2014-02-05 1 views
0

저는 작은 프로젝트에서 MVC 5 원격 유효성 검사를 수행하려고했습니다. 나는 그것의 기초를 얻기 위해 묶음에 대해 충분히 읽었습니다. 내가 지금처럼, 내 jqueryval 번들 번들을 만들어 : 나는 페이지 소스보기, 렌더링되는 유일한 스크립트를 게시 할 때 다음과 같이 그러나BundleConfig.cs에서 스크립트 참조를 생성하지 않습니다.

 bundles.Add(new ScriptBundle("~/bundles/jqueryval") 
      .Include("~/Scripts/jquery-{version}.js") 
      .Include("~/Scripts/jquery.validate.js") 
      .Include("~/Scripts/jquery.validate.unobstrusive.js") 
      ); 

같습니다

<script src="/myApp/Scripts/jquery-2.1.0.js"></script> 
    <script src="/myApp/Scripts/jquery.validate.js"></script> 

통지를하는 query.validate.unobstrusive.js가 없습니다.

@section Scripts { 
    @Scripts.Render("~/bundles/jquery") 
    @Scripts.Render("~/bundles/jqueryval") 
    <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript" /> 
    } 

모든 것이 작동 : 지금이 내가 수동과 같이 내보기 페이지에 query.validate.unobstrusive.js를 추가 할 때 때문에, 내 검증 작업을 받고있는 핵심 구성 요소입니다 알고있다.

그래서 이제 궁금하게 생각하고 있습니다. 번들링에 문제가 있습니까? 왜이 스크립트가 나타나지 않습니까?

+2

작동하는 두 번째 소스에서 보았 듯이 .min이 누락되었습니다. (당신이 방금 번들에 나쁜 경로를 가졌다 고 생각합니다.) – tymeJV

+0

사실 개발 환경에서 작업하고 있었기 때문에 실제로 하드 코딩 된 버전에'.min'이있었습니다. MVC가 올바른 파일 선택을 처리합니다. 그래서, 제 솔루션에는'jquery.validate.unobstrusive'에 대한'.js'와'.min.js' 파일이 있습니다. 게시하는 구성에 따라 MVC가 올바른 것을 선택합니다. 그래서 .Include ("~/Scripts/myFile.js")'가 필요하고'.js '와'.js.min'이 지정한 디렉토리에 존재하는 한 적절한 파일을 선택할 것입니다 , 내 것이. – Bensonius

+0

@ tymeJV, 분실 된 '분'이 아니기 때문에, 제 코드에 대해 자세히 살펴 보았습니다. 내가 "눈에 잘 띄지 않는"철자를 잘못 씁니다! DOH! 철자를 수정하고 번들이 작동합니다. 눈의 두 번째 세트는 항상 도움이됩니다. – Bensonius

답변

0

web.config에서 활성화 했습니까?

<appSettings> 
    <add key="ClientValidationEnabled" value="true" /> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
</appSettings> 

BundleConfig.cs에 포함 할 필요가 없습니다. scripts 폴더에 jquery.validate.unobstrusive.jsjquery.validate.unobstrusive.min.js이 있는지 확인하십시오.

관련 문제