2016-03-21 17 views
2

ASP.NET MVC 5'te bir projede çalışıyorum, resim dosyası yükleme gereksinimi var, görüntüyü sunucuya yükleyebiliyorum, karşı karşıya olduğum şey görüntülendiğinde bir hata olduğunda görüntüde görüntülenecek bir hata mesajı ile görünüm modelini döndürürüm, böylece kullanıcının görüntüyü tekrar seçmesi istenmez, görünümdeki tüm form alanları verileri hariç tutulur Daha önce seçilen dosya değil. Lütfen bunu başarma yolunda bana yardımcı olun. İşte seçili dosyayı görüntüle sonra yeniden yükleyin ASP.NET MVC 5

, kumandanın bir dosya girişinin değerini olamaz, burada modeli alan

Güvenlik nedeniyle
[DataType(DataType.Upload)] 
    public HttpPostedFileBase Logo 
    { 
     get; 
     set; 
    } 

cevap

2

olduğunu ben görüntüyü

@Html.TextBoxFor(model => Model.Logo, null, new { type = "file"}) 

seçmek zorunda koddur Bu nedenle, eğer görüntüyü döndürürseniz, kullanıcının dosyayı yeniden seçmesini engellemek istiyorsanız, önce dosyayı (geçici bir konuma sahip olabilir) kaydetmeli ve kullanıcıya dosyanın yüklendiğine dair bir gösterge göstermelisiniz. Örneğin, model aşağıdaki özellikleri

public HttpPostedFileBase Logo { get; set; } 
public string LogoFileName { get; set; } 
public string LogoPath { get; set; } 

ve kontrol yöntemi

içeren dosyayı ve FileName (yani model.LogoFileName = Logo.FileName;) ve Path özelliklerini ayarlamak olabilir. Sonra görünümünde, varsa FileName oluşturmak için bir koşullu deyim ekleyin veya yoksa, dosya girişini görüntüleyin, örneğin,

if(Model.LogoFileName == null) 
{ 
    @Html.TextBoxFor(m => m.Logo, new { type = "file" }) 
} 
else 
{ 
    @DisplayFor(m => m.LogoFileName) 
}