당신은 FormOptions
를 사용하여 기본 formvalue 제한을 변경할 수있는 경우이 요청은 완벽하게 잘 작동, 명확합니다. MVC를 사용하는 경우 필터를 만들고이 제한을 확장하고 나머지 작업에 대한 기본값을 유지하려는 작업에 데코레이션 할 수 있습니다.
/// <summary>
/// Filter to set size limits for request form data
/// </summary>
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public class RequestFormSizeLimitAttribute : Attribute, IAuthorizationFilter, IOrderedFilter
{
private readonly FormOptions _formOptions;
public RequestFormSizeLimitAttribute(int valueCountLimit)
{
_formOptions = new FormOptions()
{
ValueCountLimit = valueCountLimit
};
}
public int Order { get; set; }
public void OnAuthorization(AuthorizationFilterContext context)
{
var features = context.HttpContext.Features;
var formFeature = features.Get<IFormFeature>();
if (formFeature == null || formFeature.Form == null)
{
// Request form has not been read yet, so set the limits
features.Set<IFormFeature>(new FormFeature(context.HttpContext.Request, _formOptions));
}
}
}
액션 :
[HttpPost]
[RequestFormSizeLimit(valueCountLimit: 2000)]
public IActionResult ActionSpecificLimits(YourModel model)
참고 : 당신의 행동이 너무 Antiforgery 검증을 지원해야하는 경우, 다음 필터를 주문해야합니다. 예 :
// Set the request form size limits *before* the antiforgery token validation filter is executed so that the
// limits are honored when the antiforgery validation filter tries to read the form. These form size limits
// only apply to this action.
[HttpPost]
[RequestFormSizeLimit(valueCountLimit: 2000, Order = 1)]
[ValidateAntiForgeryToken(Order = 2)]
public IActionResult ActionSpecificLimits(YourModel model)
'대량의 json 양식 데이터'란 무엇을 의미합니까? 데이터를'application/x-www-form-urlencoded' 콘텐츠 유형 또는'application/json' 형식으로 게시하고 있습니까? –
@KiranChalla Content-Type : application/x-www-form-urlencoded –