2013-05-15 2 views
1

Работает в asp.net mvc4:Как привязать переменную модели к типу ввода типа файла

Я реализую функции редактирования. для этого мне нужно сопоставить старые значения с моделью в контроллере и эту модель, которую я перехожу к просмотру. В связи с этим я не могу привязать переменную модели к типу ввода типа файла. Так что хотите знать, как достичь этой проблемы.

заранее спасибо ........

ответ

0

Если я правильно понять, вы хотите иметь значение управляющего входного файла, установленного на значение в вашей модели.

Вы не можете сделать это из-за соображений безопасности. В противном случае вы можете установить элемент управления на «c: \ passwords.txt» или что-то еще, и использовать немного javascript для загрузки файла, не зная, что вы это сделали.

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(); 
    } 
Смежные вопросы