小编tru*_*oda的帖子

如何读取和更改Response的主体到覆盖OnActionExecuted方法的Controller

我需要为控制器的每个动作的每个JSON答案附加一些信息.为此,我使基本控制器继承自标准MVC Controller类.我试着这样.但我抓住ArgumentException了这样的信息"Stream不可读".当ActionResult对象将数据写入正文时,可能会关闭流.我能做什么?

public override void OnActionExecuted(ActionExecutedContext context)
{
    var respApi = new ResponseApiDTO();
    respApi.Comment = "You could!!!";
    JObject jRespApi = JObject.FromObject(respApi);
    Stream bodyStream = context.HttpContext.Response.Body;
    JObject jbody;

    context.Result = Json(jbody);
    using( var rd = new StreamReader(bodyStream))
    {
        string bodyText = rd.ReadToEnd();
        jbody = (JObject)JsonConvert.DeserializeObject(bodyText);
        jbody.Add(jRespApi);
        context.Result = Json(jbody);
    }
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net-web-api asp.net-core asp.net-core-webapi

5
推荐指数
1
解决办法
4852
查看次数