2013-02-19 3 views
2

Я пытаюсь реализовать Fineuploader в моем проекте MVC4, но он всегда не загружается. Что я сделал:Fineuploader и MVC4

добавил CSS и JS файлы на мой взгляд:

<link href="~/Content/fineuploader.css" rel="stylesheet" /> 
<script src="~/Scripts/js/util.js"></script> 
<script src="~/Scripts/js/button.js"></script> 
<script src="~/Scripts/js/dnd.js"></script> 
<script src="~/Scripts/js/handler.base.js"></script> 
<script src="~/Scripts/js/handler.form.js"></script> 
<script src="~/Scripts/js/handler.xhr.js"></script> 
<script src="~/Scripts/js/header.js"></script> 
<script src="~/Scripts/js/jquery-plugin.js"></script> 
<script src="~/Scripts/js/uploader.basic.js"></script> 
<script src="~/Scripts/js/uploader.js"></script> 

добавлен код для кнопки загрузки и exceution сценария (я думаю, что это не так?)

<script> 
    function createUploader() { 
     var uploader = new qq.FineUploader({ 
      element: document.getElementById('fine-uploader'), 
      debug: true, 
      request: { 
       endpoint: '/Upload/UploadFile/' 
      } 
     }); 
    } 

    window.onload = createUploader; 
</script> 

добавил файлы C# к моему проекту FineUpload.cs, FineUploadResult.cs и контроллер UploadController.cs. Я также добавил маршрут к контроллеру:

routes.MapRoute(
        name: "upload", 
        url: "Upload/UploadFile", 
        defaults: new { controller = "Upload", action = "UploadFile" } 
       ); 

Контроллер:

public class UploadController : Controller 
{ 
    [HttpPost] 
    public FineUploaderResult UploadFile(FineUpload upload, string extraParam1, int extraParam2) 
    { 
     ... 
    } 
} 

Но UploadFile никогда не вызывается на сервере.

+1

Попробуйте заменить 'url:" Upload/UploadFile "' с 'url:"/Upload/UploadFile "' в вашей конечной точке –

+0

я сделал, но контроллер не выполнен. Я добавил маршрут в начале. Может быть, это связано с параметрами в действии? – daniel

+0

Да. Можете ли вы попробовать попробовать следующее: 'public FineUploaderResult UploadFile (FineUpload upload, string extraParam1 =" ", int? ExtraParam2 = 0)' –

ответ

4

Вы, кажется, испортили свои сценарии включений (порядок и все). Вы должны выбрать, нужно ли вам использовать режим FineUploaderBasic, режим FineUploader или режим подключаемого модуля jQuery. Учитывая ваш код, вы, похоже, используете стандартный режим.

Вот полный рабочий пример и минимальная наценка:

@{ 
    Layout = null; 
} 

<!DOCTYPE html> 

<html> 
<head> 
    <title>Index</title> 
    <link href="~/Content/fineuploader.css" rel="stylesheet" /> 
</head> 
<body> 
    <div id="fine-uploader">Click me to upload a file</div> 

    <script src="~/Scripts/js/header.js"></script> 
    <script src="~/Scripts/js/util.js"></script> 
    <script src="~/Scripts/js/button.js"></script> 
    <script src="~/Scripts/js/handler.base.js"></script> 
    <script src="~/Scripts/js/handler.form.js"></script> 
    <script src="~/Scripts/js/handler.xhr.js"></script> 
    <script src="~/Scripts/js/uploader.basic.js"></script> 
    <script src="~/Scripts/js/dnd.js"></script> 
    <script src="~/Scripts/js/uploader.js"></script> 
    <script type="text/javascript"> 
     function createUploader() { 
      var uploader = new qq.FineUploader({ 
       element: document.getElementById('fine-uploader'), 
       debug: true, 
       request: { 
        endpoint: '@Url.Action("UploadFile", "Uploader")' 
       } 
      }); 
     } 
     createUploader(); 
    </script> 
</body> 
</html> 

Кроме того, кажется, ваше действие контроллера может занять некоторый дополнительный целочисленный параметр. Если вы не укажете его с запросом, этот запрос, очевидно, не удастся. В этом случае используйте целое число с нулевым значением.

+0

Мое действие контроллера еще не выполнено? Я добавил, что маршрутизация добавляет начало 'RegisterRoutes' – daniel

+0

Какая маршрутизация? Вам не нужно добавлять какую-либо маршрутизацию для этого. Просто используйте маршрут по умолчанию. Избавьтесь от своего пользовательского маршрута. Также посмотрите на FireBug, чтобы узнать, какой запрос выполняется на сервере, и что сервер отвечает на этот запрос. –

+0

Мне нужно добавить определенный маршрут, потому что он перенаправляется на другой контроллер/Account/Login? ReturnUrl = ... Я думаю, что моя маршрутизация теперь ложна? Пожалуйста, посмотрите на мой вопрос. Я добавил маршрутизацию и контроллер. – daniel

Смежные вопросы