Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Html.BeginForm/Ajax.BeginForm的文件上载控件不起作用。(IE中拒绝访问htmlfile)。Css样式的上载控件按钮_Javascript_Jquery_Razor - Fatal编程技术网

Javascript 使用Html.BeginForm/Ajax.BeginForm的文件上载控件不起作用。(IE中拒绝访问htmlfile)。Css样式的上载控件按钮

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() {

为了给上传控件按钮提供CSS样式,我创建了一个假按钮。点击这个假按钮,我触发文件上传控件的点击事件。 当我使用Jquery ajax时,它会给我一个错误htmlfile访问被拒绝。 但是当我使用Html.BeginForm时,它不会给我错误,也不会工作

<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" }))
{
    ...
}