私が行ったのは、ファイルアップロード用の ajax フォームポストですが、フォーム全体をリダイレクトしているようです。以下はコントローラーのアクションメソッドと部分ビューです。
public JsonResult FileUpload()
{
string message = "File is empty or null";
JsonResult jsonResult=null;
foreach (string upload in Request.Files)
{
if (!Request.Files[upload].HasFile()) continue;
string path = AppDomain.CurrentDomain.BaseDirectory + "/Attachment/Audit/";
string filename = Path.GetFileName(Request.Files[upload].FileName);
Request.Files[upload].SaveAs(Path.Combine(path, filename));
message = "File Uploaded Successfully";
}
jsonResult = Json(message, JsonRequestBehavior.AllowGet);
return jsonResult;
}
部分図
@using XXXX.Models
@using XXXX.ViewModels
@using XXXX.UtilityModels
@model AuditModel
<div id="pvView" class="view">
<div id="tabStripBottom" data-role="tabStripBottom" class="tabStripBottom k-state- active">
.
.
.
.
<div>
@using (Html.BeginForm("FileUpload", "Audit", FormMethod.Post, new { enctype = "multipart/form-data", id = "ajaxUploadForm" }))
{
<input type="file" name="FileUpload1" /><br />
<input type="submit" name="Submit" id="Submit" value="Upload" />
}
</div>
<span>
<label id="lblMessg"></label>
</span>
</div>
<input type="button" value="Save" onclick="onSave" />
</div>
<script>
$(function () {
$("#ajaxUploadForm").ajaxForm({
iframe: true,
type: 'POST',
dataType: "json",
cache: false,
timeout: 1200000,
async: true,
beforeSubmit: function () {
},
success: function (result) {
debugger;
$("#lblMessg").html() = result.message;
alert("sucess");
},
error: function (xhr, textStatus, errorThrown) {
alert("Error uploading file");
}
});
});
.
.
.
.
</script>
誰でも私を助けることができますか?前もって感謝します