C# ASP MVC 4+;Web API
我有ASP MVC4项目和Web API 我想从主应用程序使用Web API。我这样做: WebAPI项目 WebApiConfig.cs Global.asax 统计控制器C# ASP MVC 4+;Web API,c#,asp.net,asp.net-mvc,asp.net-web-api,C#,Asp.net,Asp.net Mvc,Asp.net Web Api,我有ASP MVC4项目和Web API 我想从主应用程序使用Web API。我这样做: WebAPI项目 WebApiConfig.cs Global.asax 统计控制器 公共类统计控制器:ApiController{ TopUserFactory TopUserFactory=新的TopUserFactory(); //获取api/statistics/topUsers [ActionName(“顶级用户”)] 公共列表Get(){ 返回topUserFactory.Top10Users
公共类统计控制器:ApiController{
TopUserFactory TopUserFactory=新的TopUserFactory();
//获取api/statistics/topUsers
[ActionName(“顶级用户”)]
公共列表Get(){
返回topUserFactory.Top10Users();
}
}
但是当我选择
localhost:31003/api/statistics/{topUsers}
如何使用其他项目中的WebAPI项目?您的代码看起来不错。WebAPI很容易使路由出错,请确保执行的是参数较少的get-to
否则,请使用此工具:在本地处理多个站点时,它们将具有不同的端口号 您可以通过单击任务栏上的IIS Express图标来检查端口号: 您可以通过添加配置来更改端口号:
在本地运行时,这两个站点将具有不同的端口,请确保使用正确的端口。localhost:31003/api/statistics/topUsers请尝试this@ryan-searle如何定义每个站点的端口?请参见此处
public static void Register(HttpConfiguration config) {
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Formatters.JsonFormatter.SupportedMediaTypes
.Add(new MediaTypeHeaderValue("text/html"));
}
protected void Application_Start() {
GlobalConfiguration.Configure(WebApiConfig.Register);
}
public class StatisticsController : ApiController {
TopUserFactory topUserFactory = new TopUserFactory();
// GET api/statistics/topUsers
[ActionName("topUsers")]
public List<TopUser> Get() {
return topUserFactory.Top10Users();
}
}