是否可以使用部分视图上传 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 文件上传),我该怎么办?
谢谢。