从MVC 3上传文件将打开一个新选项卡



我有一个MVC 3应用程序,这是一个部分视图(位于视图),它有一个按钮,显示上传文件的div。
div是一个表单(正如我提到的,它是视图的一部分),当我提交表单时,控制器代码正在上传文件,我希望关闭div。这一切都发生了,但除此之外,一个新的选项卡被打开。

视图代码:

$("#btnUpload").click(function () {
    $('#UploadFile').submit();
    $("#UploadFileDiv").hide();
    });
@using (Html.BeginForm("UploadFile", "Maintenance", FormMethod.Post, new { enctype = "multipart/form-data", id = "UploadFile", target = "_blank" }))
{
    <div id="UploadFileDiv" align="center" class="MyPopup" style="width: 500px; height: 250px; position: absolute; top: 100px; left: 270px;">
    <br />
    <table>
        <tr>
            <td>
                <input type="file" name="myFile" id="btnFile" style="width:200px" />
            </td>
        </tr>
    </table>
    <br />
    <div align="center">
        <a class="Infobutton" id="btnUpload">Upload</a>
        &nbsp;&nbsp;&nbsp;&nbsp;
        <a class="Infobutton" id="btnCancel">Cancel</a>
    </div>
</div>
}
控制器代码:

[HttpPost]
    public ActionResult UploadFile()
    {
            //Some code...
            string csvFileName = selectedMenu.ResourceFolder + "_" + selectedPage.ResourceFileName + ".csv";
            Request.Files["langFile"].SaveAs(csvPath);
            //return RedirectToAction("Index");
            //return false;
            //return Json(false);
            return Json("File was uploaded");           
    }

"return"注释是我已经尝试做的,以防止出现新的窗口

我试图在我的javascript中做以下事情,以防止新窗口:

function UploadFile_NEW() {
    $('#UploadFile').submit(function (e) {
        $.ajax({
            type: "POST",
            cache: false,
            async: true,
            url: '@Url.Action("UploadFile", "Maintenance")',
            data: $('form').serialize(),
            dataType: "json",
            success: function (response) {
                alert(response.Status);
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                if (errorThrown == "Forbidden") {
                    alert("Forbidden access");
                } else {
                    alert('An error occurred please retry.');
                }
            }
        });
    });
    $("#UploadFileDiv").hide();
}

不工作(表单未提交)

有什么办法可以防止文件上传时打开新窗口吗?

注意:我有一个类似的下载文件的形式,它工作得很好

谢谢

delete:

target = "_blank"

@using (Html.BeginForm("UploadFile", "Maintenance", FormMethod.Post, new { enctype =     "multipart/form-data", id = "UploadFile", target = "_blank" }))

应该是:

@using (Html.BeginForm("UploadFile", "Maintenance", FormMethod.Post, new { enctype =     "multipart/form-data", id = "UploadFile"}))

最新更新