当我的项目同时使用angular和razor时,我如何处理base href,具体取决于您所点击的路线?
我有一个项目,它同时使用mvc razor视图和angular 8。根据您所走的路线,将提供一条或另一条服务。我的路由大部分工作正常,我能够正确加载我的页面。目前,当用户导航到主页时,他们将收到一个razor视图。在控制台中,我得到了错误信息当我的项目同时使用angular和razor时,我如何处理base href,具体取决于您所点击的路线?,angular,asp.net-mvc,razor,angular-routing,routeconfig,Angular,Asp.net Mvc,Razor,Angular Routing,Routeconfig,我有一个项目,它同时使用mvc razor视图和angular 8。根据您所走的路线,将提供一条或另一条服务。我的路由大部分工作正常,我能够正确加载我的页面。目前,当用户导航到主页时,他们将收到一个razor视图。在控制台中,我得到了错误信息 No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document. 错误本身似乎没有破坏任何东西,但在所
No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the
document.
错误本身似乎没有破坏任何东西,但在所有日志(db、insights)中看到它有点烦人。这也使得IE中的调试有点烦人。有没有人对如何解决这一问题有任何建议,或者提供一些想法,以不同的方式处理我们的情况?如果可能的话,解决方案可能是告诉应用程序在用户找到正确的路线之前不要对角度进行任何操作
我们有一个名为_Layout.cshtml的视图(基本上是应用程序的入口页面)。在此视图中,我们有一些代码:
@{
var containsAngularRoute = Request.RawUrl.Contains("/app/");
if (containsAngularRoute)
{
<base href="/" />
}
}
RouteConfig.cs文件如下所示:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
// enables attributes routing
routes.MapMvcAttributeRoutes();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
constraints: new
{
serverRoute = new ServerRouteConstraint(url =>
{
return !url.PathAndQuery.StartsWith("/app", StringComparison.InvariantCultureIgnoreCase);
})
});
routes.MapRoute(
name: "angular",
url: "{*url}",
defaults: new { controller = "AngularEntry", action = "Index" }
);
[RoutePrefix("app")]
public class AngularEntryController : Controller
{
public ActionResult Index()
{
return View();
}
}
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
// enables attributes routing
routes.MapMvcAttributeRoutes();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
constraints: new
{
serverRoute = new ServerRouteConstraint(url =>
{
return !url.PathAndQuery.StartsWith("/app", StringComparison.InvariantCultureIgnoreCase);
})
});
routes.MapRoute(
name: "angular",
url: "{*url}",
defaults: new { controller = "AngularEntry", action = "Index" }
);