2016-04-20 2 views
1

Gibt es eine Möglichkeit, das View-spezifische Attribut maxAllowedContentLength zu haben?View-spezifische Einstellung maxAllowedContentLength

Zum Beispiel: Sagen wir, ich habe zwei Seiten in meiner MVC-Anwendung, und ich möchte eine Seite Content-Length bis zu 1 MB akzeptieren, und ich möchte die andere Content-Length bis zu 10 MB akzeptieren?

Antwort

1

Wenn sie sich in verschiedenen Verzeichnissen befinden, können Sie jedem Verzeichnis eine eigene maxAllowedContentLength-Datei zuweisen, indem Sie eine Datei web.config hinzufügen. Im Unterverzeichnis müssen Sie nur die Werte hinzufügen, die sich von Ihrem Basisverzeichnis unterscheiden.

1

Sie können benutzerdefinierte implementieren Action

public class ContentLengthFilter : ActionFilterAttribute 
{ 
    public ContentLengthFilter(int maxContentLength) 
    { 
     MaxContentLength = maxContentLength; 
    } 
    public int MaxContentLength { get; private set; } 
    public override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
     if (filterContext.HttpContext.Request.ContentLength > MaxContentLength) 
      throw new InvalidOperationException(); 
     base.OnActionExecuting(filterContext); 
    } 
} 

Danach dieses Attribut für spezifische Maßnahmen anwenden

[HttpPost] 
[ContentLengthFilter(10000)] 
public ActionResult UploadFile() 
{ 
    var count = Request.Files.Count;