为什么我的Web API总是无法执行HttpGet请求?

时间:2019-01-18 16:01:15

标签: c# asp.net-web-api http-status-code-404 http-get

我正在启动一个新的Web api,在其中添加了控制器 SRDSController ,其中有一个 Get 方法,该函数返回一个字符串。但不幸的是,它没有返回它,样板化的asp.net Web api代码也同样返回了它。请帮助

经过大量的Google搜索,我添加了 Global.asax中的GlobalConfiguration.Configuration.EnsureInitialized();。但是仍然没有解决问题。

Global.asax

AreaRegistration.RegisterAllAreas(); 
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
GlobalConfiguration.Configuration.EnsureInitialized();

SRDSController

     [RoutePrefix("srds-data")]
      public class SRDSController : ApiController
    {
    private ISRDSService srdsService = null;
    public SRDSController()
    {
        srdsService = new SRDSService();
    }

    [Route("srds-test")]
    [HttpGet]
    public string GetTestData()
    {
        return "SRDS is working";
    }

    [Route("get-org-detail")]
    [HttpPost]
    public IHttpActionResult GetOrgDetails(SRDSRequest srdsRequest)
    {
        var data = srdsService.GetOrgDetails(srdsRequest.OrgNumbers, srdsRequest.UserName);

        return Ok(data);
    } 
}`

到目前为止,每当我运行该应用程序时,它都会使用 http://localhost:59691/Help/ 启动该应用程序,并且它附带了“获取与发布方法”的所有列表。

随时问任何问题

预先感谢

1 个答案:

答案 0 :(得分:0)

在我看来,您可能错过了这个电话:

config.MapHttpAttributeRoutes();

这必须在WebApiConfig类的Register方法中完成。有关更多详细信息,请参见Here。我之所以这样说是因为您在操作方法中使用了属性路由。

调用url的原因之所以起作用,是因为在您调用RegisterAllAreas时已注册它。