Ich versuche einen Dateityp von HttpPostedFileBase
-Attribut zu validieren, um den Dateityp zu überprüfen, aber ich kann dies nicht tun, weil die Validierung bestanden hat. Wie könnte ich das tun?
versuchen
Modell
%Vor%HTML
%Vor%ValidateFileAttribute
%Vor% Da Ihr Attribut von einem vorhandenen Attribut erbt, müsste es in global.asax
registriert werden (siehe diese Antwort für ein Beispiel), jedoch nicht in Ihrem Fall. Ihr Validierungscode funktioniert nicht, und ein Dateitypattribut sollte nicht von RequiredAttribute
erben - er muss von ValidationAttribute
erben, und wenn Sie eine clientseitige Validierung wünschen, muss auch IClientValidatable
implementiert werden. Ein Attribut zur Überprüfung von Dateitypen wäre (beachten Sie diesen Code, wenn für eine Eigenschaft, die IEnumerable<HttpPostedFileBase>
ist und jede Datei in der Sammlung überprüft)
Es würde auf eine Eigenschaft als
angewendet werden %Vor%und in der Ansicht
%Vor% Die folgenden Skripts sind dann für die clientseitige Validierung erforderlich (in Verbindung mit jquery.validate.js
und jquery.validate.unobtrusive.js
Beachten Sie, dass Ihr Code versucht, auch die maximale Größe der Datei zu validieren, die ein separates Validierungsattribut sein muss. Ein Beispiel für ein Validierungsattribut, das die maximal zulässige Größe validiert, finden Sie in diesem Artikel .
Außerdem empfehle ich Die vollständige Anleitung zur Validierung in ASP.NET MVC 3 - Teil 2 als eine gute Anleitung zum Erstellen von benutzerdefinierten Validierungsattributen
Tags und Links asp.net-mvc-4