using System;
using System.Web;
using System.Web.Mvc;
namespace Transaction.Site.Models
{
/// <summary>
/// 自定义消息输出,分流输出中英文消息
/// </summary>
public class MyJsonResult : JsonResult
{
public string Code { get; set; }
public string Zh_cnMsg { get; set; }
public string EnglishMsg { get; set; }
/// <summary>
/// 自定义消息输出,分流输出中英文消息
/// </summary>
/// <param name="code">标识码</param>
/// <param name="zh_cnMsg">中文消息</param>
/// <param name="englishMsg">英文消息</param>
public MyJsonResult(string code, string zh_cnMsg, string englishMsg)
{
Code = code;
Zh_cnMsg = zh_cnMsg;
EnglishMsg = englishMsg;
}
public override void ExecuteResult(ControllerContext context)
{
if (context == null)
{
throw new ArgumentNullException("context");
}
var response = context.HttpContext.Response;
response.ContentType = !string.IsNullOrEmpty(ContentType) ? ContentType : "application/json";
if (ContentEncoding != null)
{
response.ContentEncoding = ContentEncoding;
}
Data = new { code = Code, msg = Zh_cnMsg };
if (!string.IsNullOrWhiteSpace(EnglishMsg))
{
HttpCookie cook = context.RequestContext.HttpContext.Request.Cookies.Get("p_lang");
if (cook != null)
{
string lang = cook.Value;
if (lang.ToLower() == "en")
{
Data = new { code = Code, msg = EnglishMsg };
}
}
}
var json = Newtonsoft.Json.JsonConvert.SerializeObject(Data);
response.Write(json);
}
}
}