Did you try using JsonResult instead?
public async Task<JsonResult> Test()
{
return new JsonResult()
{
Data = new { key: value },
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
}