我的Visual Studio解决方案中有两个项目。一个是带有AngularJS和html前端的空WEB应用程序。其他是带有嵌入式数据库,控制器和东西的WEB API项目。问题是当我从第一个解决方案调用web api控制器时,我找不到404。我怀疑托管有问题,但我不知道究竟是什么类型。我试图在IIS中托管后端项目,但没有结果。也许我错过了一些东西。
答案 0 :(得分:2)
花了很多时间研究这个,我意识到localhost中的不同端口存在问题,可以在那里找到解决方案:http://jaliyaudagedara.blogspot.com/2014/08/angularjs-consuming-aspnet-web-api.html。
基本上我应该更改属性中的项目URL以匹配前端项目的localhost端口,并添加'api'后缀以避免两个项目使用相同的虚拟目录。
答案 1 :(得分:0)
@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();
}
}
}