我正在使用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。
我在这里遗失了什么?
答案 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 })'