2015-02-10 2 views
0

Я использую JQuery-FileUpload здесь (https://github.com/blueimp/jQuery-File-Upload) Все работает отлично, пока я не пытаюсь открыть Ajax-Ссылка на FileUpload в новом окне .. . Я отлажена код в вопросе:Uncaught TypeError: Не удается прочитать свойство «_adjustMaxNumberOfFiles» неопределенной

$.getJSON($('#fileupload form').prop('action'), function (files) { 
     var fu = $('#fileupload').data('fileupload'); 
     fu._adjustMaxNumberOfFiles(-files.length); 
     fu._renderDownload(files) 
      .appendTo($('#fileupload .files')) 
      .fadeIn(function() { 
       // Fix for IE7 and lower: 
       $(this).show(); 
      }); 
    }); 

Как Debugger говорит мне файлы получены, но хорошо ... «фу» является недействительным. Проверено, загружены ли все сценарии, и они есть.

Бритва разметки:

<div id="fileupload"> 
<form action="~/Upload/UploadHandler.ashx?Action=SedCard&thumb=1" method="POST" enctype="multipart/form-data"> 
    <div class="fileupload-buttonbar"> 
     <label class="fileinput-button"> 
      <span>Add files...</span> 
      <input id="btnAdd" type="file" name="files[]" multiple="multiple" /> 
     </label> 
     <button type="button" class="delete button">Delete all files</button> 
     <div class="fileupload-progressbar"></div> 
    </div> 
</form> 
<div class="fileupload-content"> 
    <table class="files"></table> 
</div> 

Controller Код:

<HttpGet> _ 
    <Authorize> _ 
    Function MyUpload() As ActionResult 
     If Request.IsAjaxRequest Then 
      Return PartialView("_MyUpload") 
     Else 
      Return View("_MyUpload") 
     End If 
    End Function 

Так что, если я запускаю это в PartialView все идет хорошо, но запустить его в новом окне, как View он выкинет эту ошибку.

У кого-нибудь есть идея, что происходит не так?

ответ

1

О Господи, я нашел проблему ...

Оказалось, что документ не был полностью загружен, когда $ getJSON побежал. Таким образом, в случае, если кто-то стучит головой ...

$(document).ready(function() { 
     $.getJSON($('#fileupload form').prop('action'), function (files) { 
      var fu = $('#fileupload').data('fileupload'); 
      fu._adjustMaxNumberOfFiles(-files.length); 
      fu._renderDownload(files) 
       .appendTo($('#fileupload .files')) 
       .fadeIn(function() { 
        // Fix for IE7 and lower: 
        $(this).show(); 
       }); 
     }); 

    }); 

Все теперь работает: D