Я только что посмотрел исходный код MVC, и он не соответствует тому, что вы говорите в своем вопросе.
Мне кажется, JsonRequestBehavior.DenyGet
используется для всех результатов JSON по умолчанию. Следовательно, вы должны получать сообщение об ошибке каждый раз, когда пытаетесь вернуть JSON из контроллера, используя запрос GET (без указания JsonRequestBehavior.AllowGet
).
Фактический контроль выполняется в JsonResult.ExecuteResult
и выглядит следующим образом:
if (JsonRequestBehavior == JsonRequestBehavior.DenyGet &&
String.Equals(context.HttpContext.Request.HttpMethod, "GET", StringComparison.OrdinalIgnoreCase)) {
throw new InvalidOperationException(MvcResources.JsonRequest_GetNotAllowed);
}
Какие условия вызывают сообщение? Что нужно искать, когда я отлаживаю это?
Любые действия, которые вызываются через GET, который возвращает JsonResult
без указания JsonRequestBehavior.AllowGet
. (метод Json
в контроллере использует JsonResult
)