【问题标题】:Convert ASHX ProcessRequest to MVC controller将 ASHX ProcessRequest 转换为 MVC 控制器
【发布时间】:2017-09-07 16:34:06
【问题描述】:

我有一个定义了以下方法的 ashx 文件:

public void ProcessRequest(HttpContext context) ...

我想将其中的代码移动到 MVC 控制器中。所有代码都可以在 MVC 控制器中按原样轻松运行,但我不确定是否需要以特定方式编写它才能以相同方式调用。我尝试了以下方法:

[HttpPost] //in the TestController
public void Index()
{
    var context = HttpContext;
....

但它没有在第一行达到我的断点。是否有另一种方法我需要设置它以便复制被称为 ProcessRequest 在 ASHX 文件中被调用?

编辑:这是我的路线配置:

    routes.MapRoute(
        name: "Test",
        url: "test/{action}",
        defaults: new { controller = "Test", action = "Index" }
    );

【问题讨论】:

  • 检查您的路由并确保您的帖子正在访问控制器/操作。客户端调用的url是什么?
  • 只是控制器的根目录,因为它是索引,并且默认使用索引指定路由。我编辑了帖子以添加路线。
  • 您可以使用 Fiddler 或 Postman 手动发布到该端点吗?如何调用端点?您可以创建一个 GET Index 操作并通过 url 浏览到它吗?如果您可以手动访问它,那么问题在于客户端调用。
  • 问题在于调用它的应用程序是在进行 GET,而不是像我错误地假设的那样进行 POST。

标签: asp.net-mvc ashx


【解决方案1】:

事实证明,就我的目的而言,我的操作方法必须是 GET,而不是 POST。改变它解决了我的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-04
    • 2013-11-16
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    • 2017-06-07
    相关资源
    最近更新 更多