0

我有 1 个问题没有找到答案。

(MVC):在主视图上,我已将PartialView加载到 Jquery UI 对话框中。我创建了一些东西,然后在提交时将所有内容发送到数据库。在表单中,我有一个带有“multiple”属性的输入 type="file",它可以帮助我上传一些照片

   ( <input type="file" multiple="") 

. 我将照片列表(HttpPostedFileBase)发送到数据库。问题是我总是收到一个 NULL list

问:有什么问题?我也有一些不起作用的 Ajax 代码。

在另一个返回视图的控制器上使用的相同代码运行良好。我认为这是对话的问题。

主视图中的对话框代码:

 $('#element').dialog({
        autoOpen: false,           
        modal: true,
        open: function (event, ui) {
            $(this).load('@Url.Action("AddCar", "Cars")', function (html) {                    
                $('form', "#sDiv").submit(function () {
                    $.ajax({
                        url: this.action,
                        type: this.method,
                        data: $(this).serialize(),
                        success: function (res) {
                            if (res.success) {
                                $('#element').dialog('close');
                            }
                            window.location.reload();
                        }
                    });
                    return false;
                });
            });
        }
4

1 回答 1

0

您似乎正在使用 AJAX 提交表单。但这不受支持。您不能使用 jQuery AJAX 函数上传文件。你可以看看jquery.form 插件,它也支持上传文件

那里有2个营地:

  1. HTML5 - 受现代浏览器支持,您可以使用File API通过 AJAX上传文件。
  2. 遗留阵营 - 像 Internet Explorer 这样不支持文件 API 的东西,你必须回退到隐藏 iframe 等技术来模拟它。这就是 jquery.form 插件所做的 - 它检测浏览器属于哪个阵营并使用适当的技术

您还可以签出许多其他文件上传组件,例如UploadifyPluploadBlueimp File UploadValums AJAX uploader等。如果您不想编写所有底层传输机制,只需选择一个并集成到您的应用程序中。

于 2012-09-21T09:47:14.740 回答