Asp mvc razor 在文本框中存储输入文件的值

Asp mvc razor store value of input file in textbox

我的视图中有以下代码,我需要从上面的文本框中的输入文件中存储所选文件的名称,我已经尝试了以下 JS 脚本,但我没有得到任何结果

@Html.TextBoxFor(model => Model.helpVM.str1, htmlAttributes:new { id="inputId", @class = "form-control" })

<div class="col-md-4">
    <a href="#" onclick="document.getElementById('fileID').onchage(); return false;" class="btn btn-info">Choisir fichier</a>
     <input type="file" name="FileUpload" accept=".txt" data-input="false"  id="fileID" style="visibility: hidden;" />
 </div>  


            <script type="text/javascript">
                var filename = $('#fileID').val();
                document.getElementById("fileID").onchange = function () {
                    document.getElementById("inputId").value = filename
                };

在 fire bug 中我得到这个错误 TypeError: document.getElementById(...).onchange is not a function

您应该使用 Change 事件,而不是单击。语法应该是这样的:

document.getElementById("fileID").onchange = function () {
    document.getElementById("inputId").value = this.value;
}

更新:

好吧,我建议您更改代码如下:

<div class="col-md-4">
    <a href="#" onclick="HandleIt();" class="btn btn-info">Choisir fichier</a>
    <input type="file" name="FileUpload" accept=".txt" data-input="false"  id="fileID" style="visibility: hidden;" />
</div>  


<script type="text/javascript">
    function handleIt(){            
        document.getElementById("fileID").onchange = function () {
            document.getElementById("inputId").value = this.value;
        };
        return false;
    }
</script>
<script type="text/javascript">
    document.getElementById("fileID").onchange = function () {
        document.getElementById("inputId").value= this.value;
    }     
</script>