0
一時的なイメージを最初に追加してから、サブミットしたらそれらのイメージをすべてサーバーに追加します。
はここにここに私のスクリプト
<script>
var arrAcademicDetail = new Array();
function AcademicDetailModel() {
this.Id = 0;
this.UserId = 0;
this.CollegeId = 0;
this.DegreeFile=new FileReader();
}
</script>
ここアレイへの一時画像を追加し、私のクリックイベントがある私のクラス
public class UserModel
{
public int Id { get; set; }
public string FirstName { get; set; }
public List<AcademicDetailModel> AcademicDetails { get; set; }
}
public class AcademicDetailModel
{
public int Id { get; set; }
public int UserId { get; set; }
public int CollegeId { get; set; }
public HttpPostedFileBase DegreeFile { get; set; }
public String DegreeFilePath { get; set; }
}
です。
$(document).ready(function() {
$('#btnAcademic').click(function() {
var _AcademicDetailModel = new AcademicDetailModel();
_AcademicDetailModel.Id=(arrAcademicDetail.length)+1;
_AcademicDetailModel.CollegeId = $('#CollegeId').val();
if (window.File && window.FileReader && window.FileList && window.Blob) {
var file = document.getElementById("DegreeFilePath").files[0];
_AcademicDetailModel.DegreeFile=file;
}
arrAcademicDetail.push(_AcademicDetailModel);
})
})
ここでは、データをサーバーに送信する最終送信イベントがあります。
$.ajax({
url: '@Url.Action("AcademicDetail", "Home")',
data: { "Model": {
"Id":UserId,
"AcademicDetails": arrAcademicDetail
}},
contentType: false,
processData: false,
type: 'POST',
beforeSend: function() {
DDU.blockUI({ message: "Please wait.." });
},
success: function (result) {
var obj = $.parseJSON(result);
//Other Process
},
complete: function() {
DDU.unblockUI();
},
error: function() {
DDU.unblockUI();
bootbox.alert("Oops ! you caught an error.<br/><br/><b>Possible Reason</b> <br/>- Invalid data");
}
});
は、ここに私の行動
public ActionResult AcademicDetail(UserModel Model)
{
try
{
}
catch()
{
}
}
であるが、このアクションでは、私はヌルModel.AcademicDetailsを取得します。