jquery - 我可以在 asp.net mvc 的 jquery 对话框中上传文件吗

标签 jquery asp.net-mvc file-upload

我有一个表单,用户可以在其中输入其数据及其图像。该表单将位于 jquery 对话框中。我想知道是否有可能,如果我上传图像,然后将其发送到服务器以保存在硬盘驱动器上,然后不会丢失该对话框,则打印您上传的文件的消息。如果是,那么我如何使用 jquery ajaxform plugin 。我使用的是 asp.net mvc。

我尝试过的方法如下

我的观点

<div id="dialog" title="Dialog Title" style="display: none">
        <div id="Jobs">
        <form id="frmupload" enctype="multipart/form-data" method="post">
            <input id="File1" type="file" name="file" />
            <input id="Button1" type="submit" value="Upload" name="button" /> 
            </form>
        </div>
    </div>

我的 JQuery

function dialogs(id) {
        $(function () {
            var ph = $("#Jobs");           
                ph.dialog({
                    width: 700,
                    modal: true,
                    show: 'slide',
                    closeText: 'hide',
                    draggable: false,
                    resizable: false
                });
            //});
        });
    }

    function clik(id) {
        dialogs(id);
        return false;
    }
 var options = {
            url: "/Post/UploadImages"            
        };       

        $('#frmupload').ajaxForm(function (options) {
            //alert(data);
            alert("Thank you for your comment!");
        });

最佳答案

查看以下使用 AJAX 文件上传的示例(不幸的是,似乎没有给出 JavaScript):

http://jquery.malsup.com/form/#file-upload

基本上,您需要包含 iframe您的属性(property)options对象:

var options = {
    url: "/Post/UploadImages",
    iframe: true
}; 

问题是该插件需要一个包含在 <textarea></textarea> 中的响应。标签(因为响应类型必须是 HTML 或 XML)。您可以通过引入您自己的响应类型来处理 AJAX 文件上传来方便地完成此操作,如博客文章 here 中所述。 :

public class FileUploadJsonResult : JsonResult
{
    public override void ExecuteResult(ControllerContext context)
    {
        this.ContentType = "text/html";
        context.HttpContext.Response.Write("<textarea>");
        base.ExecuteResult(context);
        context.HttpContext.Response.Write("</textarea>");
    }
}

然后在你的 Controller 操作中:

return new FileUploadJsonResult { Data = new { /* ... */ } };

关于jquery - 我可以在 asp.net mvc 的 jquery 对话框中上传文件吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5167638/

相关文章:

asp.net-mvc - 复选框从 formcollection 返回 "true,false"而不是选择的值

javascript - Firefox 在选择时触发,而不是在更改时触发

javascript - JS/jQuery $(document).ready() 与超时或事件监听器冲突?

javascript - 您如何找到起始标记或结束标记的(字符串)长度?

javascript - 为什么 ajax 调用中的闭包可以访问外部范围?

asp.net - EF7 + ASP.NET5 beta8 - 数据库初始值设定项

asp.net-mvc - ActionResult 参数始终为 null

php - Internet Explorer 文件上传未通过 MIME 类型检查

javascript - 如何在javascript上发送文件?

javascript - 在其包装器上进行触摸和鼠标拖动事件时如何防止 anchor 上的单击事件