1

在 asp.net mvc4 中工作:

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

提前致谢........

4

2 回答 2

0

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

由于安全原因,您不能这样做。否则,您可以将控件设置为“c:\passwords.txt”或其他内容,并使用一些 javascript 上传文件,而用户不知道您已经这样做了。

于 2013-05-15T05:13:19.260 回答
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();
    }
于 2013-08-23T21:28:50.373 回答