我可以發誓,這應該已經回答了一百萬次之前,但我搜索了一段時間後空了。圖片上傳,驗證EF代碼優先模型
我有一個視圖綁定到一個對象。這個對象應該有一個附加到它的圖像(我沒有任何首選的方法)。我想驗證圖像文件。我見過的方式與屬性要做到這一點,例如:
public class ValidateFileAttribute : RequiredAttribute
{
public override bool IsValid(object value)
{
var file = value as HttpPostedFileBase;
if (file == null)
{
return false;
}
if (file.ContentLength > 1 * 1024 * 1024)
{
return false;
}
try
{
using (var img = Image.FromStream(file.InputStream))
{
return img.RawFormat.Equals(ImageFormat.Png);
}
}
catch { }
return false;
}
}
然而,這需要HttpPostedFileBase對房地產模型類型:
public class MyViewModel
{
[ValidateFile(ErrorMessage = "Please select a PNG image smaller than 1MB")]
public HttpPostedFileBase File { get; set; }
}
這一切都很好,但我不能在EF Code First模型類中使用這種類型,因爲它不適合數據庫存儲。
那麼最好的方法是什麼?
是的,這是有一個My ** ViewModel **的整個點。你在你的視圖中使用你的ViewModels。而且你爲你的實體創建了不同的類型,並且你手動或者像Automapper這樣做了它們之間的映射。 – nemesv
我以前沒有聽說過(我只是MVC開發的幾天)。我實際上想到了另一個解決方案,爲我工作。我把它貼在 – Inrego
以下但是對於所有模型來說,ViewModels並不是很多額外的工作嗎?這難道不是幹掉乾的做事方式的目的嗎? – Inrego