Я думаю, что вы можете использовать этот IActionFilter для этой задачи:
public class DebugFilter : IActionFilter
{
bool enabled = false;
IDictionary<string, object> arguments = null;
public void OnActionExecuting(ActionExecutingContext context)
{
enabled = context.HttpContext.Request.Headers.ContainsKey("X-Debug");
if (enabled)
{
arguments = context.ActionArguments;
}
}
public void OnActionExecuted(ActionExecutedContext context)
{
if (enabled)
{
var controllerName = context.Controller.GetType().Name;
var actionName = context.ActionDescriptor.DisplayName;
context.HttpContext.Response.Headers.Add("X-Controller-Name", controllerName);
context.HttpContext.Response.Headers.Add("X-Action-Name", actionName);
context.HttpContext.Response.Headers.Add("X-Action-Model", JsonConvert.SerializeObject(arguments));
}
}
}
и зарегистрировать его глобально в файле Startup.cs:
#if DEBUG
services.AddMvc(options =>
{
options.Filters.Add(new DebugFilter());
})
#else
services.AddMvc()
#endif
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
После этого вы включаете только 'X-Debug 'заголовок в вашем тесте и получить всю необходимую информацию из заголовков ответов.
Экран ответа почтальона
РЕДАКТИРОВАТЬ: это, конечно, очень простой класс, у вас естьдоступ к ViewData, Result, TempData и многим другим