Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 通过jQuery将文件名作为参数传递给控制器_Asp.net Mvc_Asp.net Mvc 3_Jquery Ui - Fatal编程技术网

Asp.net mvc 通过jQuery将文件名作为参数传递给控制器

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

我试图使用jQueryUI对话框上传一个图像,并将图像文件传递给实际执行上传工作的控制器。然而,我似乎不能把它弄对。代码如下所示

查看:

<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);
}