Asp.net mvc 通过jQuery将文件名作为参数传递给控制器
我试图使用jQueryUI对话框上传一个图像,并将图像文件传递给实际执行上传工作的控制器。然而,我似乎不能把它弄对。代码如下所示 查看:Asp.net mvc 通过jQuery将文件名作为参数传递给控制器,asp.net-mvc,asp.net-mvc-3,jquery-ui,Asp.net Mvc,Asp.net Mvc 3,Jquery Ui,我试图使用jQueryUI对话框上传一个图像,并将图像文件传递给实际执行上传工作的控制器。然而,我似乎不能把它弄对。代码如下所示 查看: <table> <tr> <th> Image </th> <th> Name </th> </tr> @foreach (var item i
<table>
<tr>
<th>
Image
</th>
<th>
Name
</th>
</tr>
@foreach (var item in Model.CourseApplicationForms)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.thumbnail)
</td>
<td>
@Html.DisplayFor(modelItem => item.sname)
</td>
<td>
<a href="#" class="photoupload" id="@item.enrollment_id">Upload File</a>
</td>
</tr>
}
</table>
<div id="dialog" title="Upload files">
@using(Html.BeginForm("ImageUpload","Student", FormMethod.Post, new {id="photouploadform", enctype = "multipart/form-data" }))
{
<p><input type="file" id="fileUpload" name="fileUpload" size="23"/> </p><br />
<p><input type="submit" value="Upload file" /></p>
<input type="hidden" id="EnrollId" />
}
</div>
<script type="text/javascript">
$(function () {
$('.photoupload').click(function (event) {
$('#EnrollId').val(event.target.id);
$('#dialog').dialog('open');
});
$('#photouploadform').submit(function () {
$.getJSON("/Student/ImageUpload/", {
Id: $('#EnrollId').val(), file: $('#fileUpload')
}, function (data) {
$('#dialog').append('<p>' + data + '</p>');
});
return false;
});
$("#dialog").dialog({
autoOpen: false,
show: "blind",
width: 400,
hide: "fade",
modal: true,
resizable: false
});
});
</script>
我想传递fileupload图像,但不知道如何传递。好心帮忙
提前感谢您需要更改操作中的动词属性以接受post方法,并通过ajax/jquery执行请求post。你试过了?@wnascimento还没有试过,但现在肯定会试……但是我如何从文件上传传递文件名呢?感谢如果使用$.ajax而不是$.getJSON,则可以执行Post请求,并在使用Post谓词的操作中从HttpPostedFileBase读取文件。在$.ajax回调中,您可以阅读您的JSONResult。@Wnascement感谢您的建议,我们一定会看一看。。。
[AcceptVerbs(HttpVerbs.Get)]
JsonResult ImageUpload(int Id, HttpPostedFileBase file = null)
{
string filePath = string.Empty;
if (file.ContentLength > 0)
{
Directory.CreateDirectory(HttpContext.Server.MapPath("~/Content/Photo/medium"));
filePath = Path.Combine(HttpContext.Server.MapPath("~/Content/Photo/medium"), Path.GetFileName(file.FileName));
file.SaveAs(filePath);
}
return Json(filePath, JsonRequestBehavior.AllowGet);
}