1
매우 명시적인 콘텐츠 길이 제한을위한 맞춤 작업 필터가 있습니다. 최대 값을 초과하는 콘텐츠 길이에 대해 호출 조치는 HTTP 404.13로, 더 의미있는 결과를 반환하는 경우필터 된 동작으로 인해 HttpNotFoundResult가 반환되는 동작 필터를 만들려면 어떻게해야합니까?
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.HttpContext.Request.ContentLength >= MaxLength)
{
throw new HttpException("MaxLengthFilter: Request has Content-Length > " + MaxLength);
}
base.OnActionExecuting(filterContext);
}
내가 선호 : 그것은이 같은 자사의 작업을 수행합니다. 작업 내에서 직접 필터링하는 경우 'return new HttpNotFoundResult()'를 사용할 수 있지만 필터의 OnActionExecuting
메서드는 void
입니다.
필터링을 필요로하는 일부 동작은 ActionResult
이고 일부는 JsonResult
이고 후자는 HttpNotFoundResult
의 직렬화가 필요하다는 점에서이 작업은 더욱 복잡합니다.
여기서'Error401_13'은 간단한'return new HttpNotFoundResult'를합니다. 실제로 올바른 방향으로 나아가는 한 걸음. 어떻게 든 필터에 리다이렉트를 리턴 할 수는 없다는 것을 알지 못했습니다. – ProfK
두번째 생각에 아마도'Server.Transfer'가 리다이렉트보다 낫습니다. 이것은 아작스의 어두운 세계이며 브라우저 왕복을 피하고 싶습니다. – ProfK
Error401_13은 귀하의 목적에 따라 결과를 반환 할 수 있습니다. 오류 페이지가 필요하면 반환 오류 코드가 필요하면 조치를 반환하고 예외가 발생하면 json 응답이 필요하면'Json (new {yourResponce}); – aleha