【问题标题】:How to call web api Get method which i having string parameter as argument from angularjs如何调用我将字符串参数作为来自angularjs的参数的web api Get方法
【发布时间】:2015-11-28 19:29:14
【问题描述】:

web api 方法:

[ResponseType(typeof(AspNetUser))]

     public IHttpActionResult GetUserId(string userName)
        {
          AspNetUser aspnetuser = db.AspNetUsers.Find(userName);

            if (aspnetuser == null)
            {
                return NotFound();
            }

            return Ok(aspnetuser);
        }

angularjs 控制器:

  var promisePost = AssetService.getUserId($scope.userName);

Angularjs服务调用webapi方法: //根据UserName获取用户ID的函数

 this.getUserId = function(userName) {
        return $http.get("/api/AssetAPI/GetUserId/" + userName);
    };

webapi.config:

 config.Routes.MapHttpRoute(
                name: "DemoAPI",
                routeTemplate: "api/{controller}/{action}/{userName}",
                defaults: new { userName = string.Empty}
            );

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

我收到此错误:404 not found error..请提前帮助解决这个问题。

Request URL:http://localhost:52018/api/AssetAPI/GetUserId/admin
Request Method:GET
Status Code:404 Not Found

【问题讨论】:

  • 错误信息是否提供了更多细节?

标签: angularjs model-view-controller asp.net-web-api


【解决方案1】:

ApiController 类的名称是什么?确保将控制器的名称指定为 AssetAPIController 以遵循必要的约定。

除了路由看起来不错,如果控制器的名称设置正确,提供的代码确实可以工作。

【讨论】:

  • 感谢您的回复。 API 控制器名称仅为 AssetAPIController ..但不知道是什么问题。你能建议我是否可以返回 JSON 数据而不是 [ResponseType(typeof(AspNetUser))]?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-25
  • 1970-01-01
  • 2023-03-10
  • 2015-04-11
  • 2013-10-17
  • 1970-01-01
相关资源
最近更新 更多