【问题标题】:Asp.Net Mvc ajax file upload with partialViews?使用 partialViews 上传 Asp.Net Mvc ajax 文件?
【发布时间】:2012-11-27 02:58:25
【问题描述】:

是否可以使用部分视图上传 ajax 文件?

我尝试通过以下方式做到这一点:

_Upload.cshtml(部分视图)

<script type="text/javascript">
$(document).ready(function () {
    $("#upload").click(function () {
        var val = $("#galeries").val();
        if (val == null || val == "") {
            val = 0;
        }
        var form = $("#form");
        $.ajax({
            url: form.attr('action'),
            type: form.attr('method'),
            data: { galeryId: val, formElements: form.serialize() },
            complete: function () {

            },
            error: function (jqXhr, textStatus, errorThrown) {
                alert("Error '" + jqXhr.status + "' (textStatus: '" + textStatus + "', errorThrown: '" + errorThrown + "')");
            },
            success: function (data) {

            }
        });
    });
});
</script>

@using (Html.BeginForm("_Upload", "Admin", FormMethod.Post, new { enctype = "multipart/form-data", id = "form" }))
{
    <input type="file" name="file" id="file" />
    <input type="button" value="Yükle" id="upload" />
}

控制器

[HttpPost]
public ActionResult _Upload(IEnumerable<HttpPostedFileBase> files, int galeryId,FormCollection formElements)
{
    foreach (var file in files)
    {
        if (file.ContentLength > 0)
        {
            var fileName = Path.GetFileName(file.FileName);
            var path = Path.Combine(Server.MapPath("~/Images/Galery_" + galeryId), fileName);
            file.SaveAs(path);
        }
    }

    return View();
}

我不知道,我应该将哪些参数类型传递给控制器​​动作。我用这种情况调试了一下。

galeryId = 1;
formElements = "";
files = null;

如果可以(带有部分视图的ajax文件上传),我该怎么做?

谢谢。

【问题讨论】:

  • 你不能使用 $.Ajax 来发布文件。如果你想异步上传你必须使用像 Uploadify 这样的插件。

标签: ajax asp.net-mvc file-upload partial-views


【解决方案1】:

序列化方法不适用于文件上传(文件输入类型被忽略)。根据您的目标浏览器,您可以使用FormData 方法(对于 IE,它必须是 10+),或者开始使用 iframe 来异步发布您的表单。

【讨论】:

    猜你喜欢
    • 2011-06-12
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    • 2011-06-22
    • 1970-01-01
    • 1970-01-01
    • 2013-01-28
    • 2011-01-26
    相关资源
    最近更新 更多