使用创建输入文件的脚本进行上传时不要进入控制器

时间:2017-02-20 13:38:59

标签: jquery asp.net asp.net-mvc asp.net-mvc-4

我需要使用动态上传表单。

我用这个脚本在asp mvc中添加输入文件:

   <button type="button" onclick="adduploadfile()" class="btn btn-success">افزودن فایل</button>

*

    function adduploadfile() {
    $("<input>").attr('type', 'file').attr('name', 'NewsFilePath').attr('class', 'form-control NewsFilePathUpload')
    .appendTo('.insertfileuploads');
}

并使用此代码上传图片:

$(document).ready(function () {
$('.NewsFilePathUpload').change(function () {
    $(this).simpleUpload("/Admin/News/GetFiles", {
        start: function (file) {
            //upload started
            console.log("upload started");
        },
        progress: function (progress) {
            //received progress
            console.log("upload progress: " + Math.round(progress) + "%");
        },
        success: function (data) {
            //upload successful
            console.log("upload successful!");
            console.log(data);
        },
        error: function (error) {
            //upload failed
            console.log("upload error: " + error.name + ": " + error.message);
        }
    });
});

当我上传文件时,它不会进入控制器。

当我将此代码放入视图(不使用脚本)并使用它时,请输入控制器。这个问题是什么?

 <input name="NewsFilePath" class="form-control NewsFilePathUpload" type="file">

1 个答案:

答案 0 :(得分:1)

你可以这样做。 通过单击按钮调用此方法。

使用jquery .after方法

function adduploadfile() {
   $( ".insertfileuploads" ).after('<input name="NewsFilePath" class="form-control NewsFilePathUpload" type="file">');
}

这会将输入标记放在你的元素之后。

修改 您需要在添加input元素后绑定change事件。

工作小提琴:Working fiddle