首页
学习
活动
专区
圈层
工具
发布

Web配置
EN

Stack Overflow用户
提问于 2017-02-11 19:09:58
回答 2查看 84关注 0票数 0

我有个问题。

WebApiConfig

代码语言:javascript
复制
public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{action}",
            defaults: new
            {
                id = RouteParameter.Optional,
                api = "api",
                namespaces = new string[] { "able.application.api" }
            }
        );
    }
}

Global.asax

代码语言:javascript
复制
protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();
    WebApiConfig.Register(GlobalConfiguration.Configuration);
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    GlobalConfiguration.Configuration.EnsureInitialized();
}

控制器

代码语言:javascript
复制
public class ContentModelController : ApiController
{
    public ContentModelController()
    {

    }

    [HttpPost, HttpGet]
    public HttpResponseMessage Get(int? id)
    {
        return null;
    }
}

问题是:当我调用get方法时,我会得到以下错误。

CallUrl:http://localhost:54531/api/ContentModel/get?id=1

拜托,帮帮我..。:(

<Error> <Message> No HTTP resource was found that matches the request URI 'http://localhost:54531/api/ContentModel/get?id=1'. </Message> <MessageDetail> No type was found that matches the controller named 'ContentModel'. </MessageDetail> </Error>

EN

回答 2

Stack Overflow用户

发布于 2017-02-12 03:49:47

使用此模板

代码语言:javascript
复制
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { action = "all", id = RouteParameter.Optional }
);

而不是这个

代码语言:javascript
复制
config.Routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "api/{controller}/{action}",
        defaults: new
        {
            id = RouteParameter.Optional,
            api = "api",
            namespaces = new string[] { "able.application.api" }
        }
    );

WebApiConfig.cs文件中。希望这对你有用。

票数 1
EN

Stack Overflow用户

发布于 2017-02-12 19:07:06

尝试遵循SaurabhSri伐API的建议,并将您的API调用更新为:http://localhost:54531/api/ContentModel/get/1

或者,您可以使用原始调用更新方法签名,以获得以下内容:public HttpResponseMessage Get([FromUri]int? id)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42180079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档