我的Visual Studio解决方案中有两个项目。一个是空的WEB API应用程序,带有AngularJS和html前端。另一个是WEB API项目,嵌入式数据库,控制器和其他东西。问题是,当我从我的第一个解决方案调用web api控制器时,我得到了404未找到。我怀疑主机存在问题,但我不知道具体是哪种。我尝试在IIS中托管后端项目,但没有结果。也许我错过了什么。
在花了很多时间对此进行调查后,我意识到localhost中的不同端口存在问题,可以在那里找到解决方案:http://jaliyaudagedara.blogspot.com/2014/08/angularjs-consuming-aspnet-web-api.html.
基本上,我应该更改属性中的项目URL,以匹配前端项目的localhost端口,并添加"api"后缀,以避免两个项目使用相同的虚拟目录。
@satish,Global.asax:
namespace WebAPI_Training
{
public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
GlobalConfiguration.Configure(WebApiConfig.Register);
}
}
}
WebApiConfig.cs:
namespace WebAPI_Training
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
var jsonFormatter = config.Formatters.OfType<JsonMediaTypeFormatter>().First();
jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
}
}
}