项目整体架构:Domain、IDao、DaoImpl、IBll、Bll 、WebAPI和UI,其中WebAPI调用Bll层的方法,进而适配各个终端(Web、APP、手机)等的调用。
看了很多资料,但是Namespace和多个Get、POST方法就是访问不了,找不到Action,求各位老司机带带。
0、错误问题
1、WebAPI层
WebAPI带有命名空间和多个Get POST方法,示例如下:
namespace Winder.Xj.Api
{
/// <summary>
/// ClassName: dbo.UniUserController
/// Date Auther Record
/// 2017/3/9 16:27:49 Winder Creating
/// </summary>
public class UniUserController : ApiController
{
[HttpGet]
public int CountUniUser()
{
return UniUserManager.CountUniUser();
}
[HttpPut]
public int AddUniUser(UniUser uniUser)
{
return UniUserManager.AddUniUser(uniUser);
}
[HttpPut]
public int AddUniUser(Hashtable h)
{
return UniUserManager.AddUniUser(h);
}
[HttpDelete]
public int DeleteUniUser(string userId)
{
return UniUserManager.DeleteUniUser(userId);
}
[HttpDelete]
public int DeleteUniUser(UniUser uniUser)
{
return UniUserManager.DeleteUniUser(uniUser);
}
[HttpPost]
public int UpdateUniUser(UniUser uniUser)
{
return UniUserManager.UpdateUniUser(uniUser);
}
[HttpGet]
public UniUser GetUniUserByUserId(string userId)
{
return GetUniUserByUserId(userId);
}
[HttpGet]
public IList<UniUser> GetUniUsersTopN(int n)
{
return UniUserManager.GetUniUsersTopN(n);
}
[HttpGet]
public IList<UniUser> GetAllUniUsers()
{
return UniUserManager. GetAllUniUsers();
}
}
2、路由注册
public static void Register(HttpConfiguration config)
{
// Web API 配置和服务
// Web API 路由
config.MapHttpAttributeRoutes();
//1、默认路由
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}Controller/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
请求地址写的有问题啊,试试http://localhost:56320/api/UniUserController/GetUniUsersTopN?n=U201290002101
多个Get POST方法的路由有什么问题?
@WesternWind:
请求URI有问题,GetUniUsersTopN方法你想调用的int类型的参数是什么?
URI可以设置为http://localhost:56320/api/UniUserController/GetUniUsersTopN?n=请求的int参数值