2
我有一個文件上傳功能在我的MVC 3 web應用程序,我試圖驗證文件大小和文件類型使用這些屬性:MVC 3文件上傳驗證觸發錯誤
[FileSize(1048576, ErrorMessage = "The image is too big. It should be up to 1MB")]
[FileType(MimeTypes.Image.Jpg, MimeTypes.Image.Jpeg, MimeTypes.Image.Png, "image/pjpeg", "image/x-png", ErrorMessage = "Your image must be a JPG/JPEG or PNG up to 1MB.")]
public HttpPostedFileBase File { get; set; }
HTML如下:
<input type="file" size="20" name="File" />
@Html.ValidationMessageFor(x => x.File)
當文件被選中時,一切都很完美。但是,如果沒有選擇文件,我仍然會得到FileSize或FileType驗證啓動和驗證錯誤。如何避免這種情況,因爲我不希望在POST上需要文件?
有沒有什麼辦法可以執行默認的FileSizeAttribute驗證如果值不爲空(沒有複製粘貼它從原始實現)? –
我不明白你的問題。 –
如果我像您提到的那樣從FileSizeAttribute覆蓋IsValid方法,則必須手動編寫其餘的驗證代碼(如果值不爲null,則爲示例中的TODO部分)。有什麼辦法可以讓它做FileSizeAttribute完全一樣的事情嗎?我的意思是,我需要相同的功能+當值爲空時忽略。 –