使用kendoUpload在MVC中上传异步文件

时间:2015-12-02 02:04:11

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 kendo-ui kendo-asp.net-mvc

我正在使用MVC文件上传器。

以下是我的代码:

<div class="demo-section k-content">
<input name="files" id="files" type="file" />
</div>


<script>
$(document).ready(function () {
            var data = JSON.stringify({
            'ReportID': '@(Model.ReportID)',
        });

    $("#files").kendoUpload({
        async: {
            saveUrl: '@Url.Action("save", "UserPage")',

            //removeUrl: "remove",
            autoUpload: true,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            data: data,
        }//,
    });
});

on ActionResult我正在使用以下代码:

string fileName = Path.GetFileName(files.FileName);
fileName = model.ReportID + "s" + Guid.NewGuid() + extension;

一切正常,除了model.ReportID的值,每次都返回NULL。

我在这里遗失了什么?

2 个答案:

答案 0 :(得分:1)

尝试类似的东西:

 @(Html.Kendo().Upload()
        .Name("uploadFiles")
        .Async(a => a
            .Save("Save", "Upload")
            .Remove("Remove", "Upload")
            .AutoUpload(true)
            .SaveField("files")
            //.Batch(true)
            .RemoveField("fileNames")
        )
        .Multiple(true)
        .ShowFileList(true)
        .Events(events => events
        .Error("onUploadError")
        .Progress("onUploadProgress")
        .Complete("onUploadComplete")
        .Success("onUploadSuccess")
        .Select("onUploadSelect")
        .Upload("onUploadAdditionalData")
        .Remove("onUploadRemove"))
    )

在onUploadAdditionalData事件中,您可以传递如下参数:

function onUploadAdditionalData(e) {
e.data = { val1: val1, val2: val2 };

}

您的控制器操作应如下所示:

 public ActionResult Save(IEnumerable<HttpPostedFileBase> files, string val1, string val2)
    {
    //do upload handling here
    }

答案 1 :(得分:0)

如果您检查文档http://docs.telerik.com/kendo-ui/api/javascript/ui/upload#configuration-async async.data没有文档,我不确定是否有这样的属性。

你可以直接把它放到saveUrl:

saveUrl: '@Url.Action("save", "UserPage", new { ReportID = Model.ReportID })'