2012-12-14 2 views
0

를 사용할 때 F가 null . 그러나 어떤 이유로 파일이 실제로 번들되면 오류가 발생합니다. 다음 번들을 정의했습니다 :형식 오류 : 릴리스 모드에서 번들을 사용할 때 다음과 같은 오류를 얻고있다 ASP.NET MVC4 번들

 bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
        "~/Scripts/Common/jquery/jquery-{version}.js", 
        "~/Scripts/Common/jquery/jquery-ui-{version}.js", 
        "~/Scripts/Common/jquery/jquery.labelify.js")); 

     bundles.Add(new ScriptBundle("~/bundles/login").Include(
      "~/Scripts/Common/knockout/knockout-2.1.0.js", 
      "~/Scripts/Common/knockout/json2.js", 
      "~/Scripts/Common/knockout/knockout.validation.min.js", 
      "~/Scripts/Common/knockout/KnockoutValidationConfiguration.js", 
      "~/Scripts/App/Common/LoginViewModel.js" 
      )); 

그리고이 번들을 페이지 머리글 안에 렌더링했습니다. 나는 그것을 주석 때

<script type="text/javascript"> 
    $(function() { 
     var context = new LoginViewModel(); 
     ko.applyBindings(context, document.getElementById('login_form')); 
    }); 
</script> 

, 나는 더 이상 오류가 발생하지 않습니다 그리고 내 Login.cshtml 파일의 맨 아래에, 나는 다음과 같은 코드가 있습니다.

이것은 LoginViewModel 또는 사용중인 라이브러리 중 하나가 원인인지 확실하지 않습니다. 어쨌든 LoginViewModel 코드는 다음과 같습니다.

function LoginViewModel() { 
    var self = this; 

    self.Username = ko.observable().extend({ required: { message: "Nom d'utilisateur est obligatoire" } }); 
    self.Password = ko.observable().extend({ required: { message: 'Mot de passe est obligatoire' } }); 
    self.ErrorMessage = ko.observable(); 
    self.enableButton = ko.computed(function() { 
     var errors = ko.utils.unwrapObservable(ko.validation.group(self)); 
     return (errors.length == 0); 
    }); 

    self.onLogin = function() { 
     var credentials = ko.toJSON({ 
      Username: self.Username(), 
      Password: self.Password() 
     }); 
     $.ajax({ 
      url: "/Account/Login", 
      type: "post", 
      contentType: 'application/json', 
      data: credentials, 
      success: function (data) { 
       if (data && data.result == "success") { 
        self.ErrorMessage(""); 
        window.location = data.targetUrl; 
       } 
       else if (data && data.result == "failure") { 
        self.ErrorMessage(data.errorMessage); 
       } 
      } 
     }); 
    } 
}; 

의견이 있으십니까? 어떻게 디버깅 할 수 있으며 왜 릴리스 모드에서만 발생합니까?

답변

0

"~/Scripts/Common/knockout/knockout.validation.min.js"을 사용하지 마십시오. 대신 개발 파일 "~/Scripts/Common/knockout/knockout.validation.js"을 사용하십시오.

+0

아니요. 그것은 작동하지 않았다. – Kassem

+0

방금 ​​녹아웃 검증에 대한 모든 언급을 주석 처리했으며 오류가 사라졌습니다. 그래서이 도서관에 문제가있는 것 같습니까? 당신이 제안한대로했는데 문제가 해결되지 않았습니다. 어떤 아이디어? – Kassem

+0

knockout.validation을 모르기 때문에 질문에 답변 할 수 없습니다. 난 그냥 .min 파일을 번들에 추가 할 수 없다는 것을 알고있다. – MuriloKunze

관련 문제