我想使用 jquery 对话框上传文件。我创建了一个局部视图并在对话框中显示该局部视图。
问题是,当我直接浏览局部视图并上传文件时,它工作得很好。但是当我将部分视图放在 jquery 对话框中时,它会提交表单,但不提交文件。所以我有空值。我真的不明白这里有什么区别!
希望有人可以帮助我找出问题所在。
这是一些代码;
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>
}