如何从angularjs调用以字符串参数作为参数的WebAPI Get方法

如何从angularjs调用以字符串参数作为参数的WebAPI Get方法,angularjs,model-view-controller,asp.net-web-api,Angularjs,Model View Controller,Asp.net Web Api,web api方法: [ResponseType(typeof(AspNetUser))] public IHttpActionResult GetUserId(string userName) { AspNetUser aspnetuser = db.AspNetUsers.Find(userName); if (aspnetuser == null) { retu

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方法: //函数根据用户名获取用户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找不到错误..请在此帮助提前感谢

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

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


除此之外,如果控制器的名称设置正确,路由看起来很好,提供的代码也可以工作。

错误消息是否提供了更多详细信息?感谢您的回复。API控制器名称仅为AssetAPI控制器..但不知道问题出在哪里。你能建议我是否可以返回JSON数据而不是[ResponseType(typeof(AspNetUser))]吗?