asp.net-mvc - 为什么 ASP.NET Web API 2 中不调用 ExecuteResult() 方法?

标签 asp.net-mvc asp.net-web-api

我正在创建一些自定义操作结果,如下所示。

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() 方法没有被执行?

最佳答案

Web API 借鉴了 ASP.NET MVC 的一些想法,并复制了 ASP.NET MVC 命名空间中的一些类型名称。但 Web API 与 ASP.NET MVC 完全不同。它们不应该以简单的混合方式使用。

关于asp.net-mvc - 为什么 ASP.NET Web API 2 中不调用 ExecuteResult() 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25551980/

相关文章:

.net - 为 Django/Pylons 程序员学习 C# 和 ASP.NET MVC

jquery - 有没有办法用jquery刷新页面而不执行location.reload()?

c# - JSON.NET Parser *似乎* 双重序列化我的对象

c# - 在 WebAPI 中绑定(bind)抽象操作参数

c# - RoutePrefix 与路由

c# - Web API 版本控制 URL

asp.net-mvc - 使用作为集合的模型进行 Visual Studio Razor 格式化

asp.net-mvc - ASP.NET MVC主详细信息输入表

asp.net-mvc - Content 和 LoadContentFrom 之间的区别

java - ERROR 411 在 java 中使用 API(POST 方法)