C# web.api无法测试操作

C# web.api无法测试操作,c#,asp.net-web-api,asp.net-mvc-routing,C#,Asp.net Web Api,Asp.net Mvc Routing,我创建了一个Web.API、MVC应用程序,但在尝试测试时遇到了一些问题。我得到这个错误: {“Message”:“未找到与请求URI“”匹配的HTTP资源”。,“MessageDetail”:“未找到与名为“order”的控制器匹配的类型”。” 订单管理员 [System.Web.Http.HttpGet] public string SayWhat(string quoteName) { return "Hello World " + quoteName; } WebApiConf

我创建了一个Web.API、MVC应用程序,但在尝试测试时遇到了一些问题。我得到这个错误:

{“Message”:“未找到与请求URI“”匹配的HTTP资源”。,“MessageDetail”:“未找到与名为“order”的控制器匹配的类型”。”

订单管理员

[System.Web.Http.HttpGet]
public string SayWhat(string quoteName)
{
    return "Hello World " + quoteName;
}
WebApiConfig

config.Routes.MapHttpRoute(
    name: "DefaultPostApi",
    routeTemplate: "api/{controller}/{action}/{quote}"
);

config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
尝试将属性“ActionName”添加到函数中

[System.Web.Http.HttpGet()]
[ActionName("SayWhat")]
public string SayWhat(string quoteName)
{
    return Convert.ToString("Hello World ") + quoteName;
}
尝试将属性“ActionName”添加到函数中

[System.Web.Http.HttpGet()]
[ActionName("SayWhat")]
public string SayWhat(string quoteName)
{
    return Convert.ToString("Hello World ") + quoteName;
}
尝试将属性“ActionName”添加到函数中

[System.Web.Http.HttpGet()]
[ActionName("SayWhat")]
public string SayWhat(string quoteName)
{
    return Convert.ToString("Hello World ") + quoteName;
}
尝试将属性“ActionName”添加到函数中

[System.Web.Http.HttpGet()]
[ActionName("SayWhat")]
public string SayWhat(string quoteName)
{
    return Convert.ToString("Hello World ") + quoteName;
}

错误消息表明它没有看到订单控制器

“未找到与名为'order'的控制器匹配的类型。”

假设您指出确实有一个
OrderController
,那么有一种可能是控制器的类型不正确,因为框架会查找从
ApiController
继承的类型

确保控制器的类型正确

public class OrderController : ApiController {    
    //GET api/Order/saywhat/33
    [System.Web.Http.HttpGet]
    public string SayWhat(string quote) {
        return "Hello World " + quote;
    }
}

错误消息表明它没有看到订单控制器

“未找到与名为'order'的控制器匹配的类型。”

假设您指出确实有一个
OrderController
,那么有一种可能是控制器的类型不正确,因为框架会查找从
ApiController
继承的类型

确保控制器的类型正确

public class OrderController : ApiController {    
    //GET api/Order/saywhat/33
    [System.Web.Http.HttpGet]
    public string SayWhat(string quote) {
        return "Hello World " + quote;
    }
}

错误消息表明它没有看到订单控制器

“未找到与名为'order'的控制器匹配的类型。”

假设您指出确实有一个
OrderController
,那么有一种可能是控制器的类型不正确,因为框架会查找从
ApiController
继承的类型

确保控制器的类型正确

public class OrderController : ApiController {    
    //GET api/Order/saywhat/33
    [System.Web.Http.HttpGet]
    public string SayWhat(string quote) {
        return "Hello World " + quote;
    }
}

错误消息表明它没有看到订单控制器

“未找到与名为'order'的控制器匹配的类型。”

假设您指出确实有一个
OrderController
,那么有一种可能是控制器的类型不正确,因为框架会查找从
ApiController
继承的类型

确保控制器的类型正确

public class OrderController : ApiController {    
    //GET api/Order/saywhat/33
    [System.Web.Http.HttpGet]
    public string SayWhat(string quote) {
        return "Hello World " + quote;
    }
}

在WebApiConfig.cs中使用以下代码

public static void Register(HttpConfiguration config)
    {
        // Web API configuration and services

        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

        config.Routes.MapHttpRoute(
            name: "ActionApi",
            routeTemplate: "api/{controller}/{action}/{quoteName}",
            defaults: new { quoteName = RouteParameter.Optional }
        );
    }
在控制器中:

[HttpGet]
    [ActionName("SayWhat")]
    public string SayWhat(string quoteName)
    {
        return "Hello World " + quoteName;
    }

在WebApiConfig.cs中使用以下代码

public static void Register(HttpConfiguration config)
    {
        // Web API configuration and services

        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

        config.Routes.MapHttpRoute(
            name: "ActionApi",
            routeTemplate: "api/{controller}/{action}/{quoteName}",
            defaults: new { quoteName = RouteParameter.Optional }
        );
    }
在控制器中:

[HttpGet]
    [ActionName("SayWhat")]
    public string SayWhat(string quoteName)
    {
        return "Hello World " + quoteName;
    }

在WebApiConfig.cs中使用以下代码

public static void Register(HttpConfiguration config)
    {
        // Web API configuration and services

        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

        config.Routes.MapHttpRoute(
            name: "ActionApi",
            routeTemplate: "api/{controller}/{action}/{quoteName}",
            defaults: new { quoteName = RouteParameter.Optional }
        );
    }
在控制器中:

[HttpGet]
    [ActionName("SayWhat")]
    public string SayWhat(string quoteName)
    {
        return "Hello World " + quoteName;
    }

在WebApiConfig.cs中使用以下代码

public static void Register(HttpConfiguration config)
    {
        // Web API configuration and services

        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

        config.Routes.MapHttpRoute(
            name: "ActionApi",
            routeTemplate: "api/{controller}/{action}/{quoteName}",
            defaults: new { quoteName = RouteParameter.Optional }
        );
    }
在控制器中:

[HttpGet]
    [ActionName("SayWhat")]
    public string SayWhat(string quoteName)
    {
        return "Hello World " + quoteName;
    }


您的控制器类是公共的吗?是的,控制器是公共的,配置和控制器看起来很好。你应该展示更多的代码。你确定你的应用程序正在该端口上运行吗?您有其他APi或MVC路由吗?您的控制器类是公共的吗?是的,控制器是公共的配置和控制器看起来很好。你应该展示更多的代码。你确定你的应用程序正在该端口上运行吗?您有其他APi或MVC路由吗?您的控制器类是公共的吗?是的,控制器是公共的配置和控制器看起来很好。你应该展示更多的代码。你确定你的应用程序正在该端口上运行吗?您有其他APi或MVC路由吗?您的控制器类是公共的吗?是的,控制器是公共的配置和控制器看起来很好。你应该展示更多的代码。你确定你的应用程序正在该端口上运行吗?你还有其他APi或MVC的路线吗?我已经用这条路线中的所有信息更新了我的WebApiConfig。我还尝试了actionname属性,但没有帮助。仍然是相同的错误..好的,我发现解决方案更改如下:routeTemplate:=“api/{controller}/{action}/{quote}”使用此routeTemplate:=“api/{controller}/{action}/{quotename}”我已经用这一个中的所有内容更新了我的WebApiConfig。我还尝试了actionname属性,但没有帮助。仍然是相同的错误..好的,我发现解决方案更改如下:routeTemplate:=“api/{controller}/{action}/{quote}”使用此routeTemplate:=“api/{controller}/{action}/{quotename}”我已经用这一个中的所有内容更新了我的WebApiConfig。我还尝试了actionname属性,但没有帮助。仍然是相同的错误..好的,我发现解决方案更改如下:routeTemplate:=“api/{controller}/{action}/{quote}”使用此routeTemplate:=“api/{controller}/{action}/{quotename}”我已经用这一个中的所有内容更新了我的WebApiConfig。我还尝试了actionname属性,但没有帮助。仍然是相同的错误..好的,我发现解决方案更改如下:routeTemplate:=“api/{controller}/{action}/{quote}”与此routeTemplate:=“api/{controller}/{action}/{quotename}”