94 lines
3.3 KiB
C#
94 lines
3.3 KiB
C#
using System;
|
|
using System.Configuration;
|
|
using System.Web;
|
|
using System.Web.Configuration;
|
|
using System.Web.Mvc;
|
|
using System.Web.Script.Serialization;
|
|
using WX.CRM.Common;
|
|
|
|
namespace Core.Web.WebHelper
|
|
{
|
|
public class JsonResultConfig : JsonResult
|
|
{
|
|
public override void ExecuteResult(ControllerContext context)
|
|
{
|
|
if (context == null)
|
|
{
|
|
throw new ArgumentNullException("context");
|
|
}
|
|
if (JsonRequestBehavior == JsonRequestBehavior.DenyGet && String.Equals(context.HttpContext.Request.HttpMethod, "GET", StringComparison.OrdinalIgnoreCase))
|
|
{
|
|
throw new InvalidOperationException("This request has been blocked because sensitive information could be disclosed to third party web sites when this is used in a GET request. To allow GET requests, set JsonRequestBehavior to AllowGet.");
|
|
}
|
|
|
|
HttpResponseBase response = context.HttpContext.Response;
|
|
|
|
if (!String.IsNullOrEmpty(ContentType))
|
|
{
|
|
response.ContentType = ContentType;
|
|
}
|
|
else
|
|
{
|
|
response.ContentType = "application/json";
|
|
}
|
|
if (ContentEncoding != null)
|
|
{
|
|
response.ContentEncoding = ContentEncoding;
|
|
}
|
|
if (Data != null)
|
|
{
|
|
var json = Data.ToJson();
|
|
response.Write(json);
|
|
}
|
|
}
|
|
}
|
|
|
|
public class ConfigurableJsonResult : JsonResult
|
|
{
|
|
public override void ExecuteResult(ControllerContext context)
|
|
{
|
|
if (context == null)
|
|
{
|
|
throw new ArgumentNullException("context");
|
|
}
|
|
if (JsonRequestBehavior == JsonRequestBehavior.DenyGet &&
|
|
String.Equals(context.HttpContext.Request.HttpMethod, "GET", StringComparison.OrdinalIgnoreCase))
|
|
{
|
|
throw new InvalidOperationException("This request has been blocked because sensitive information could be disclosed to third party web sites when this is used in a GET request. To allow GET requests, set JsonRequestBehavior to AllowGet.");
|
|
}
|
|
|
|
HttpResponseBase response = context.HttpContext.Response;
|
|
|
|
if (!String.IsNullOrEmpty(ContentType))
|
|
{
|
|
response.ContentType = ContentType;
|
|
}
|
|
else
|
|
{
|
|
response.ContentType = "application/json";
|
|
}
|
|
if (ContentEncoding != null)
|
|
{
|
|
response.ContentEncoding = ContentEncoding;
|
|
}
|
|
if (Data != null)
|
|
{
|
|
JavaScriptSerializer serializer = new JavaScriptSerializer();
|
|
|
|
ScriptingJsonSerializationSection section = ConfigurationManager.GetSection("system.web.extensions/scripting/webServices/jsonSerialization") as ScriptingJsonSerializationSection;
|
|
|
|
if (section != null)
|
|
{
|
|
serializer.MaxJsonLength = section.MaxJsonLength;
|
|
serializer.RecursionLimit = section.RecursionLimit;
|
|
}
|
|
else
|
|
{
|
|
serializer.MaxJsonLength = int.MaxValue;
|
|
}
|
|
|
|
response.Write(serializer.Serialize(Data));
|
|
}
|
|
}
|
|
}
|
|
} |