Wie überprüft man den Dateityp des HttpPostedFileBase-Attributs in Asp.Net MVC 4?

8

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%     
FernandoPaiva 23.10.2016, 05:29
quelle

1 Antwort

11

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)

%Vor%

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

) %Vor%

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

    
Stephen Muecke 23.10.2016, 05:58
quelle

Tags und Links