Custom IActionResult to Return Json in ASP.NET Core with Lowercase First Letter

2021年8月21日 4530点热度 0人点赞 0条评论
内容目录

Inheriting from IActionResult:

    public class ResponseResult<TData> : IActionResult
    {
        /// <summary>
        /// Status code
        /// </summary>
        public int Code { get; set; }

        /// <summary>
        /// Response message
        /// </summary>
        public string Msg { get; set; }

        /// <summary>
        /// Response data
        /// </summary>
        public TData Result { get; set; }

        /// <summary>
        /// Response content type
        /// </summary>
        protected const string contentTypeString = "application/json; charset=utf-8";

        /// <summary>
        /// Formats the response result
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public virtual async Task ExecuteResultAsync(ActionContext context)
        {
            context.HttpContext.Response.ContentType = contentTypeString;
            var executor = context.HttpContext.RequestServices.GetRequiredService<IActionResultExecutor<JsonResult>>();
            var jsonResult = new JsonResult(this);
            await executor.ExecuteAsync(context, jsonResult);
        }
    }

Usage:

        public async Task<IActionResult> SetActiveState(string accountId, bool active)
        {
		... ... 
            return new ResponseResult
			{
			... ...
			};
        }

痴者工良

高级程序员劝退师

文章评论