Javascript 使用Html.BeginForm/Ajax.BeginForm的文件上载控件不起作用。(IE中拒绝访问htmlfile)。Css样式的上载控件按钮
为了给上传控件按钮提供CSS样式,我创建了一个假按钮。点击这个假按钮,我触发文件上传控件的点击事件。 当我使用Jquery ajax时,它会给我一个错误htmlfile访问被拒绝。 但是当我使用Html.BeginForm时,它不会给我错误,也不会工作Javascript 使用Html.BeginForm/Ajax.BeginForm的文件上载控件不起作用。(IE中拒绝访问htmlfile)。Css样式的上载控件按钮,javascript,jquery,razor,Javascript,Jquery,Razor,为了给上传控件按钮提供CSS样式,我创建了一个假按钮。点击这个假按钮,我触发文件上传控件的点击事件。 当我使用Jquery ajax时,它会给我一个错误htmlfile访问被拒绝。 但是当我使用Html.BeginForm时,它不会给我错误,也不会工作 <div id="divUploadForm"> @using (Html.BeginForm("UploadAction", "HomeController",new AjaxOptions() {
<div id="divUploadForm">
@using (Html.BeginForm("UploadAction", "HomeController",new AjaxOptions()
{
UpdateTargetId = "divUploadForm",
InsertionMode = InsertionMode.Replace
}))
{
<fieldset>
<input type="text" id="fakeupload" name="fakeupload" class="fakeupload" />
<input type="button" value="Browse" id="BrowseBtn" />
<input type="file" name="file" id="files-to-upload" onchange="this.form.fakeupload.value = this.value;" style="display: none" />
<input type='submit' id='upload-files' value='Save'/>
</fieldset>
}
</div>
<script type="text/javascript">
$(function () {
$('#BrowseBtn').click(function () {
$('#files-to-upload').trigger('click');
});
$('#fakeupload').click(function () {
$('#files-to-upload').trigger('click');
});
});
</script>
它仍然会给出“错误:访问被拒绝。”您正在使用
Html.BeginForm
和AjaxOptions
?没有这种过载。只有Ajax.*
助手才能使用AjaxOptions
也就是说,您不能使用AJAX上传文件。因此,请坚持使用普通的Html.BeginForm,但请确保为多部分/表单数据指定适当的enctype
:
@using (Html.BeginForm("UploadAction", "HomeController", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
...
}
如果你想用javascript来上传文件和处理进程等事情。。。您可以查看其中一个。如果您的文件上载控件被隐藏,浏览器出于安全原因不允许单击它,并且您不能使用ajax上载文件,因为javascript无法访问文件内容。:谢谢。之前我也做了同样的事情,但它仍然给我“错误:访问被拒绝”。@Mangesh Pimpalkar,这可能与您试图触发隐藏文件元素上的单击事件有关。
@using (Html.BeginForm("UploadAction", "HomeController", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
...
}