如何从angularjs调用以字符串参数作为参数的WebAPI Get方法
web api方法:如何从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
[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))]吗?