關於MVC Ajax.BeginForm()非同步上傳檔案的問題

來源:互聯網
上載者:User

標籤:json   .json   cti   method   後台   利用   優勢   use   base   

問題描述:

  如果用juqery原生的非同步上傳方式,只要如下方法即可

$.ajax({             type: "GET",             url: "test.json",             data: {username:$("#username").val(), content:$("#content").val()},             dataType: "json",             success: function(data){
alert("");
}
})
但是既然用MVC就應該利用它的優勢,所以就用了如下方法

@using (Ajax.BeginForm("Upload", "Index", new AjaxOptions() { HttpMethod = "Post", OnSuccess = "onSuccess" }, new { enctype = "multipart/form-data", id = "uploadForm" }))
{
<input type="hidden" name="id" value="@ViewBag.id">
<input type="file" id="scan" name="image" value="瀏覽.." />
<input type="submit" value="上傳" />
}

在後台用

public ActionResult UpLoad(HttpPostedFileBase file)

{

file = Request.Files["image"];

}

好了在後台能拿到資料完美了,但是問題也來了,非同步非同步,就是是否成功與否都要返回到前台data;

data是返回了,但是卻返回到了Action Upload頁面,而請求的頁面是Index頁面。

然後我馬上想到了mvc有一個內建的非同步js檔案能解決非同步返回請求的頁面 檔案如下:

<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>

但是這個非同步只是針對<input type=text>類型的,對於 enctype = "multipart/form-data" 類型的背景file就一直取不到

然後經過度娘的協助找到了這個厲害的js檔案,就解決了這個問題哈哈檔案如下:

Jquery.form.js

 

關於MVC Ajax.BeginForm()非同步上傳檔案的問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.