我正在创建一些自定义操作结果,如下所示。
public class MyActionResult : ActionResult
{
public override void ExecuteResult(ControllerContext context)
{
context.HttpContext.Response.Status = "my status";
context.HttpContext.Response.StatusCode = 400;
context.HttpContext.Response.AppendHeader("MyHeader", "bingo");
context.HttpContext.Response.Write("some content");
context.HttpContext.Response.End();
}
}
我的行动方法如下:
[HttpGet]
[Route("check/{id}")]
public MyActionResult Check(string id)
{
return new MyActionResult();
}
我在ExecuteResult()中设置了一个断点但它从未命中过。我像这样测试Web API:
http://localhost:22247/api/v1/check/123
我希望看到我在ExecuteResult()方法中设置的内容,标题等。但实际结果始终是一个空的内容如下的JSON文件。状态代码始终为200。
{}
为什么不执行ExecuteResult()方法?
答案 0 :(得分:2)
Web API从ASP.NET MVC借用了一些想法,并从ASP.NET MVC命名空间中复制了一些类型名称。但是,Web API与ASP.NET MVC完全不同。它们不应该以天真的混合方式使用。