c# Web服务路由控制器到定义的URL

本文关键字:定义 URL 控制器 Web 服务 路由 | 更新日期: 2023-09-27 18:15:32

我是c#新手,致力于一点Spike。我已经建立了一些POCO OWIN自托管服务,并试图创建一个控制器,但指南和文档无处不在,似乎指向我在错误的方向。

我将默认映射添加到启动类中的配置方法中。然后在我的控制器我有一个简单的GET方法。当我使用在启动路由中定义的url向它发送请求时,这个方法就会被调用。但现在我需要设置由新url调用的第二个方法。

我不知道我错过了什么,我不明白什么,但我所做的一切都不对我起作用:

控制器中

相关代码:

// GET api/ManagedService
    public string[] Get()
    {
        Start();
        return new string[]
        {
            "Job Processed."
        };
    }

我的启动类中的相关代码:

HttpConfiguration config = new HttpConfiguration();
        config.EnableCors();
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/start"
        );

在访问api/{controller}/start时我调用了get但是我想用api/{controller}/receiptandsend调用一个不同的方法

c# Web服务路由控制器到定义的URL

我不是100%确定我明白问题是什么,但试着把你的routeTemplate改为"api/{controller}/{action}"。你正在使用的routeTemplate假定你在每个控制器上都有一个名为start的操作(方法)。或者,你可以尝试添加另一个路由,如name: "anotherOne", routeTemplate: "api/{controller}/receiptandsend",但我不认为这是真正正确的方式。

编辑:顺便说一下,你的Get方法可能应该被命名为其他东西,像StartJob或其他东西,"Get"似乎有点误导看到你没有得到任何东西,除了一个文本说你启动了一些其他进程。