我是剃鬚刀視圖引擎的新手。我遇到了想要上載圖像瀏覽器的Image with Change事件的情況。一旦上傳完成,如何獲取json結果?
$("#billUpload").change(function(){
$('#uploadImageForm').submit();
}
Razor視圖代碼如下:
@using (Html.BeginForm("Upload", "Home", FormMethod.Post, new { enctype = "multipart/form-data", id = "uploadImageForm" }))
{
<span class="file-input btn btn-sm btn-default btn-file">
Browse…
<input id="billUpload" name="File" type="file">
</span>
}
控制器的代碼是在這裏:
[HttpPost]
public ActionResult Upload(HttpPostedFileBase file)
{
if (ModelState.IsValid)
{
if (file == null)
{
ModelState.AddModelError("File", "Please Upload Your file");
}
else if (file.ContentLength > 0)
{
int MaxContentLength = 1024 * 1024 * 4; //Size = 4 MB
string[] AllowedFileExtensions = new string[] { ".jpg", ".gif", ".png", ".pdf" };
if (!AllowedFileExtensions.Contains
(file.FileName.Substring(file.FileName.LastIndexOf('.'))))
{
ModelState.AddModelError("File", "Please file of type: " + string.Join(", ", AllowedFileExtensions));
}
else if (file.ContentLength > MaxContentLength)
{
ModelState.AddModelError("File", "Your file is too large, maximum allowed size is: " + MaxContentLength + " MB");
}
else
{
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(Server.MapPath("~/Content/images/Bill/"), fileName);
file.SaveAs(path);
ModelState.Clear();
ViewBag.Message = "File uploaded successfully. File path : ~/Content/image/Bill/" + fileName;
}
}
}
return Json("Done",JsonRequestBehavior.AllowGet);
}
現在,這整個代碼與上傳沒有問題,運行 jQuery的功能如下圖像,但我不明白如何顯示此警報框中的控制器返回此json消息。提前致謝。
你應該用'ajax'提交表單來做到這一點。 – Azim
在這種情況下,控制器將HttpPostedFileBase置空。我已經嘗試過了。 –
你指的是什麼提示框?你做一個正常的提交,所以它只是要重定向到一個新的頁面(並顯示「完成」,因爲你返回一個'JsonResult') –