2

我正在尝试使用 FineUploader 来使用 Asp-Net MVC 4 在单个页面上向服务器提交多个文件。我正在使用示例中的代码:

HTML:

<div id="manual-fine-uploader"></div>
<button id="triggerUpload" class="red text_only has_text" style="margin-top: 10px;">
       <span data-bind="text: 'Subir archivos'"></span>
</button>

JS:

$(document).ready(function() {
                var manualuploader = $('#manual-fine-uploader').fineUploader({
                    debug: true,
                    request: {
                        element: $('#manual-fine-uploader'),
                        endpoint: "SaveArchivos"
                    },
                    autoUpload: false,
                    text: {
                        uploadButton: "<i class=\"icon-plus icon-white\"></i>"+i18n.t('seleccionarArchivos')
                    }
                });

                $('#triggerUpload').click(function() {
                    manualuploader.fineUploader('uploadStoredFiles');
                });
            });   

控制器:

    public class CondicionesComercialesController : Controller
{
    ...
    [HttpPost]
    public FineUploaderResult SaveArchivos(FineUpload upload)
    {
        // asp.net mvc will set extraParam1 and extraParam2 from the params object passed by Fine-Uploader

        var dir = @"e:\upload\path";
        var filePath = Path.Combine(dir, upload.Filename);
        try
        {
            upload.SaveAs(filePath);
        }
        catch (Exception ex)
        {
            return new FineUploaderResult(false, error: ex.Message);
        }

        // the anonymous object in the result below will be convert to json and set back to the browser
        return new FineUploaderResult(true, new { extraInformation = 12345 });
    }
    ...
    }

请求到达服务器端,但上传参数始终为空。我想我在客户端缺少一些 id,但我在文档中找不到任何指出设置位置的内容。有任何想法吗?

4

1 回答 1

1

我发现了我的错误。我错过了 FineUpload 类中的 ModelBinder 行(在服务器端):

    using System.IO;
    using System.Web.Mvc;

    namespace Vizion.Web.UI.Helpers
    {

      [ModelBinder(typeof(ModelBinder))]

      public class FineUpload
      {
        ...

现在它完美地工作了。感谢雷·尼古拉斯!

于 2013-05-07T14:55:05.967 回答