jqueryダイアログを使用してファイルをアップロードしたい。部分ビューを作成し、その部分ビューをダイアログに表示しました。
問題は、部分ビューを直接参照してファイルをアップロードすると、完全に機能することです。しかし、部分ビューをjqueryダイアログ内に配置すると、フォームは送信されますが、ファイルは送信されません。だから私はnull値を持っています。ここで何が違うのか本当にわかりません!!
誰かが私が問題を特定するのを手伝ってくれることを願っています。
ここにいくつかのコードがあります。
jqueryコード:
$('#UploadDialog').dialog({
autoOpen: false,
width: 580,
resizable: false,
modal: true,
open: function (event, ui) {
$(this).load('@Url.Action("Upload","Notes")');
},
buttons: {
"Upload": function () {
$("#upload-message").html('');
$("#noteUploadForm").submit();
},
"Cancel": function () {
$(this).dialog("close");
}
}
});
$(".uploadLink").click(function () {
$('#UploadDialog').dialog('open');
});
return false;
});
部分ビュー:
@using (Ajax.BeginForm("Upload", "Notes", null, new AjaxOptions
{
UpdateTargetId = "upload-message",
InsertionMode = InsertionMode.Replace,
HttpMethod = "POST",
OnSuccess = "uploadSuccess"
}, new { id = "noteUploadForm" , enctype="multipart/form-data"}))
{
<div>
<div id="upload-message"></div>
<div class="editLabel">
@Html.LabelFor(m => m.Notes.NoteTitle)
</div>
<div class="editText">
@Html.TextBoxFor(m => m.Notes.NoteTitle)
</div>
<div class="clear"></div>
<div class="editLabel">
@Html.Label("Upload file")
</div>
<div class="editText">
<input type="file" name="file" />(100MB max size)
</div>
</div>
}