如何将模型变量绑定到输入文件类型控件

时间:2013-05-15 04:08:23

标签: asp.net-mvc-4

使用asp.net mvc4:

我正在实施编辑功能。为此,我需要将旧值映射到控制器中的模型以及我传递给视图的模型。在视图中,我无法将模型变量绑定到输入文件类型控件。 所以想知道如何实现这个问题。

提前感谢........

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望将输入文件控件的值设置为模型中的值。

出于安全原因,您无法执行此操作。否则你可以将控件设置为“c:\ passwords.txt”或其他东西,并使用一些javascript来上传文件而不会让用户知道你已经这样做了。

答案 1 :(得分:0)

是的,你可以使用一个小的jquery和HTML 5兼容的浏览器来做到这一点。

 $('#YourFormId').submit(function () {
    var formData = new FormData($('form')[0]);
    $.ajax({
        url: this.action,
        cache: false,
        type: this.method,
        data: formData,
        success: function (result) {

        },
        beforeSend: function (e) {

        },
        contentType: false,
        processData: false
    });
    // it is important to return false in order to 
    // cancel the default submission of the form
    // and perform the AJAX call
    return false;
});

我从其他地方获得此代码,可能是这个网站。我一直看到有人说你不能这样做,但它适用于IE 10+和Chrome。

ViewModel如下所示:

    public class MyModel
{
    public string mytest { get; set; }
    public string mytest2 { get; set; }
    public string status { get; set; }
    public HttpPostedFileBase  fileupload {get;set;}
}

动作如下:

    [HttpPost]
    public ActionResult YourActionName(YourModel model)
    {
        return whatever();
    }