0

我是我的 asp.net mvc 应用程序,我有一个

  • 将文件的缩略图包含在 iframe 中加载的 aspx 页面中。我想用打开/保存对话框打开文件。该文件以图像数据类型上传到数据库。我的 aspx 页面中有以下 html:

    <li class="thumpimage">
                            <%=Html.Hidden("attachmtId", item.ILDAttachmentId) %>
                            <img src="<%=imgurl %>" alt="test" height="81" width="76" />
                            <span class="thumb_descrp">
                                <%=item.ILDAttachmentName %></span></li>
    

    jquery部分如下

    $(document).ready(function() {
    
            $(".thumpimage").click(function() {
                var attchmtId = $("#attachmtId").val();
                alert(attchmtId);
                $.post('/Instruction/OpenInstnDoc', { attchId: attchmtId });
            });
        });
    

    控制器中的功能是

     public ActionResult OpenInstnDoc(int attchId)
        {
    
            Attachment objAttach = new Attachment();
            objAttach = objAttach.GetAttachmentById(attchId);
    
            byte[] theData = objAttach.BinaryFile;
            Response.AddHeader("content-length", theData.Length.ToString());
            Response.AddHeader("content-disposition", "inline; filename=" + objAttach.AttachmentName + "");
            return File(theData, objAttach.MineType);
        }
    

    我无法打开文件。谁可以帮我这个事?

  • 4

    1 回答 1

    0

    您不能使用 ajax 将文件内容流式传输到浏览器并期望通过文件打开/保存对话框得到提示。而不是调用 $.post,尝试

    $(document).ready(function() {
    
        $(".thumpimage").click(function() {
            var attchmtId = $("#attachmtId").val();
            alert(attchmtId);
            //$.post('/Instruction/OpenInstnDoc', { attchId: attchmtId });
            window.location.href = "/Instruction/OpenInstnDoc/" + attchmtId;
        });
    });    
    
    于 2011-08-10T07:05:14.540 回答