我正在开发一个Angular应用程序,使用ASP.NET WebApi作为后端。
如果我从RouteConfig.cs中删除了catch-all路由,http://localhost:1653/api/feed工作正常。
当我添加它时,它也会捕获api调用。
public class FeedController : ApiController
{
[HttpGet]
[Route("api/feed")]
public IEnumerable<FeedItem> Get()
{
var items = new List<FeedItem>();
items.Add(new FeedItem("News from the server!"));
return items;
}
}
但是当删除时,Angular应用程序在刷新时崩溃,因为需要使用catch-all路径来显示所有视图。
routes.MapRoute(
name: "Default",
url: "{*anything}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
属性路由不应该解决这个问题吗?
答案 0 :(得分:0)
找到它:
protected void Application_Start()
{
Container = UnityConfig.InitializeUnity();
AreaRegistration.RegisterAllAreas();
RouteConfig.RegisterRoutes(RouteTable.Routes);
GlobalConfiguration.Configure(WebApiConfig.Register);
...
如果RouteConfig是第一个,那么它不起作用。好的,所以有:)