return new JsonContractResult { Data = new { data = facilityDetails }, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
---------------------
public class JsonContractResult : JsonResult
{
/// <summary>
/// Initializes a new instance of the <see cref="JsonContractResult"/> class.
/// </summary>
public JsonContractResult()
{
JsonRequestBehavior = JsonRequestBehavior.DenyGet;
}
/// <summary>
/// Gets or sets the content encoding.
/// </summary>
/// <value>The content encoding.</value>
private new Encoding ContentEncoding { get; set; }
/// <summary>
/// Gets or sets the type of the content.
/// </summary>
/// <value>The type of the content.</value>
private new string ContentType { get; set; }
/// <summary>
/// Gets or sets the data.
/// </summary>
/// <value>The data.</value>
public new object Data { private get; set; }
/// <summary>
/// Gets or sets a value that indicates whether HTTP GET requests from the client are allowed.
/// </summary>
/// <value>The json request behavior.</value>
public new JsonRequestBehavior JsonRequestBehavior { get; set; }
/// <summary>
/// Enables processing of the result of an action method by a custom type that inherits from the <see cref="T:System.Web.Mvc.ActionResult" /> class.
/// </summary>
/// <param name="context">The context within which the result is executed.</param>
/// <exception cref="System.ArgumentNullException">context</exception>
/// <exception cref="System.InvalidOperationException">This request has been blocked.</exception>
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.");
}
HttpResponseBase response = context.HttpContext.Response;
if(response.StatusCode == 403) throw new UnauthorizedAccessException();
response.ContentType = !String.IsNullOrEmpty(ContentType) ? ContentType : "application/json";
if (ContentEncoding != null)
{
response.ContentEncoding = ContentEncoding;
}
if (Data == null) return;
var jsonSerializerSettings = new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
};
response.Write(JsonConvert.SerializeObject(Data, Formatting.Indented, jsonSerializerSettings));
}
}
---------------------
public class JsonContractResult : JsonResult
{
/// <summary>
/// Initializes a new instance of the <see cref="JsonContractResult"/> class.
/// </summary>
public JsonContractResult()
{
JsonRequestBehavior = JsonRequestBehavior.DenyGet;
}
/// <summary>
/// Gets or sets the content encoding.
/// </summary>
/// <value>The content encoding.</value>
private new Encoding ContentEncoding { get; set; }
/// <summary>
/// Gets or sets the type of the content.
/// </summary>
/// <value>The type of the content.</value>
private new string ContentType { get; set; }
/// <summary>
/// Gets or sets the data.
/// </summary>
/// <value>The data.</value>
public new object Data { private get; set; }
/// <summary>
/// Gets or sets a value that indicates whether HTTP GET requests from the client are allowed.
/// </summary>
/// <value>The json request behavior.</value>
public new JsonRequestBehavior JsonRequestBehavior { get; set; }
/// <summary>
/// Enables processing of the result of an action method by a custom type that inherits from the <see cref="T:System.Web.Mvc.ActionResult" /> class.
/// </summary>
/// <param name="context">The context within which the result is executed.</param>
/// <exception cref="System.ArgumentNullException">context</exception>
/// <exception cref="System.InvalidOperationException">This request has been blocked.</exception>
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.");
}
HttpResponseBase response = context.HttpContext.Response;
if(response.StatusCode == 403) throw new UnauthorizedAccessException();
response.ContentType = !String.IsNullOrEmpty(ContentType) ? ContentType : "application/json";
if (ContentEncoding != null)
{
response.ContentEncoding = ContentEncoding;
}
if (Data == null) return;
var jsonSerializerSettings = new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
};
response.Write(JsonConvert.SerializeObject(Data, Formatting.Indented, jsonSerializerSettings));
}
}
No comments:
Post a Comment