C# 使用asp.net core启用角度路由
我正在尝试构建一个web应用程序,后端使用C# 使用asp.net core启用角度路由,c#,asp.net,angularjs,asp.net-core,C#,Asp.net,Angularjs,Asp.net Core,我正在尝试构建一个web应用程序,后端使用asp.net核心,前端使用angular 1.5.x。问题在于如何使服务器能够分析角度路由。我将这些代码行添加到startup.cs中,evry thing工作正常: DefaultFilesOptions options = new DefaultFilesOptions(); options.DefaultFileNames.Clear(); options.DefaultFileNames.Add
asp.net核心
,前端使用angular 1.5.x
。问题在于如何使服务器能够分析角度路由。我将这些代码行添加到startup.cs
中,evry thing工作正常:
DefaultFilesOptions options = new DefaultFilesOptions();
options.DefaultFileNames.Clear();
options.DefaultFileNames.Add("Index.html");
app.Use(async (context, next) =>
{
await next();
if (context.Response.StatusCode == 404 && !Path.HasExtension(context.Request.Path.Value))
{
context.Request.Path = "/Index.html";
await next();
}
})
.UseCors("AllowAll")
.UseDefaultFiles(options)
.UseStaticFiles()
.UseIdentity()
.UseMvc();
但是我觉得这不是一个好的做法,这个问题应该在appsettings.json
中解决。有什么想法吗?答案(大部分)在UseMVC选项中。。。
您应该实现服务器端路由,如图所示
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
routes.MapSpaFallbackRoute("spa-fallback", new { controller = "Home", action = "Index" });
});
看看这个使用JavaScriptServices:它们添加了服务器端NodeJ(包括角度)渲染,并启用了默认路由,将首次调用路由到嵌入SPA的索引/主页/任何页面。所有结论性的电话都由律师处理router@Tseng用appsettings.json文件怎么办?为什么?你不太可能在跑步时改变路线/控制器。Angular Spa只需要一个入口点(这就是名称来自单页应用程序的地方)@Tseng-haw告诉服务器使用入口点?好像你说所有的东西都会自动工作似的!我添加了Microsoft.AspNetCore.NodeServices、Microsoft.AspNetCore.SpaServices和Microsoft.AspNetCore.AngularServices软件包,它工作正常,但我在startup中添加Mvc时有一个例外。csI说(大部分),因为我从未测试过它,但我认为这是一个合理的答案。。。