繁体   English   中英

Web API调用错误ASP.Net MVC

[英]Web API calling Error ASP.Net MVC

我正在开发Web API,但无法实现。 错误显示404未找到。

Web API

using Atea.Azure.ApiMangement.Business;
using System.Web.Http;

namespace Azure_API_Delegation_Portal.Controllers
{
    [RoutePrefix("api/apim")]
    public class ApimController : ApiController
    {
        private readonly ISubscriptionService _subscriptionService;
        [HttpGet]
        [Route("{string:productId}")]
        public bool GetProductSubscribe(string productId)
        {
            return _subscriptionService.IsSubscribed(productId);
        }
    }
}

我如何调用API https://localhost:44300/api/apim/ldkjfk232

Web API路由

using System.Web.Http;

namespace Azure_API_Delegation_Portal
{
    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            config.MapHttpAttributeRoutes();

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

图片

在此处输入图片说明

修正您的路线模板。 默认情况下它是字符串,因此不需要字符串约束

//GET api/apim/ldkjfk232"
[HttpGet]
[Route("{productId}")]
public bool GetProductSubscribe(string productId)

还要注意,此示例将约束放在占位符名称之后

[Route("{paramaterName:int}")]

在此处阅读有关属性路由的更多信息: ASP.NET Web API 2中的属性路由

它将向您展示如何正确配置Web API。

我在“ Global.asax”文件的Application_Start()函数中缺少此代码行。

GlobalConfiguration.Configure(WebApiConfig.Register);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM