2012-12-14 63 views
0

當我在釋放模式下使用時捆綁收到以下錯誤f爲空。但出於某種原因,一旦文件被捆綁在一起,我會收到錯誤信息。我已經定義了下列軟件包:類型錯誤:使用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" 
      )); 

而且我在頁面的頁眉內部渲染了這些包。而在我的Login.cshtml文件的底部,我有以下代碼:

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

當我註釋掉,我沒有得到的錯誤了。

我不確定這是否是由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