在ASP.NET Core中,可以自定义一个继承自ActionResult的类来返回带有值的新的ActionResult。下面是一个示例代码:
using Microsoft.AspNetCore.Mvc;
public class MyActionResult : ActionResult
{
public T Value { get; }
public MyActionResult(T value)
{
Value = value;
}
public override void ExecuteResult(ActionContext context)
{
// 在这里处理返回结果的逻辑
// 可以通过context.HttpContext.Response写入响应内容
// 设置响应内容类型
context.HttpContext.Response.ContentType = "application/json";
// 写入响应内容
context.HttpContext.Response.WriteAsync(Value.ToString());
}
}
然后,在控制器中可以使用这个自定义的ActionResult返回带有值的结果:
public IActionResult MyAction()
{
// 创建一个带有值的新的ActionResult
var result = new MyActionResult("Hello, World!");
// 返回自定义的ActionResult
return result;
}
在上面的示例中,自定义的MyActionResult类继承自ActionResult并实现了ExecuteResult方法来处理返回结果的逻辑。在MyAction方法中,创建一个带有值的新的MyActionResult实例,并将其返回。这样,就可以返回一个带有值的新的ActionResult了。