c# – AngularJs Routing,MVC6 / vNext / .NET5和MVC View
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – AngularJs Routing,MVC6 / vNext / .NET5和MVC View,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2423字,纯文字阅读大概需要4分钟。
内容图文
所有使用AngularJs和MVC6 / vNext / .NET5的例子都使用wwwroot中的静态index.html文件.完成,但我现在需要加载一个MVC index.cshtml页面,所以我可以将我的config.json中的设置注入页面.
我想要的只是一个默认页面(Home),如果url不是js / css文件或者是api控制器,那么无论加载什么url都会加载.
我已经尝试将此添加到我的配置(IApplicationBuilder应用程序,IServiceProvider serviceProvider)方法,但现在,我的js和css文件全部拉回Home / Index.cshtml文件
app.UseMvc(options =>
{
options.MapRoute("Api",
template: "api/{version}/{controller}/{action?}",
defaults: new { version = "v1", controller = "Page" });
options.MapRoute(
name: "default",
template: "{*url}",
defaults: new { controller = "Home", action = "Index" });
});
我的应用程序加载到默认地址http://localhost:port,没有额外的文件夹可以开始.通过angularJs,用户可以访问诸如
http://localhost:6000/page
http://localhost:6000/page/9
http://localhost:6000/another
http://localhost:6000/another/9/sub
所有这些都应该加载Home / Index.cshtml页面,让angular接管路由.
我已经看到了向web.config文件添加内容的选项,但我不会使用IIS,所以这不是一个选项
编辑
如果我更新我的路由,它似乎加载页面和所有js / css文件,这是伟大的.但是,如果我试图直接进入一个有角度的路线,没有任何东西加载.
app.UseMvc(options =>
{
options.MapRoute("Api",
template: "api/{version}/{controller}/{action?}",
defaults: new { version = "v1", controller = "Page" });
options.MapRoute(
name: "default",
template: "{controller}/{action?}",
defaults: new { controller = "Home", action = "Index" });
});
编辑2
public void Configure(IApplicationBuilder app, IServiceProvider serviceProvider)
{
// add automapper registrations
app.RegisterMappingFiles();
// Enable all static file middleware
app.UseStaticFiles();
// Enable Mvc for controllers
app.UseMvc(options =>
{
options.MapRoute(
name: "default",
template: "{controller}/{action?}",
defaults: new { controller = "Home", action = "Index" });
});
}
解决方法:
我想,您还没有在请求管道中添加使用静态文件,因此请求它们,处理MVC路由:
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
app.UseStaticFiles();
app.UseMvc(options =>
{
options.MapRoute("Api",
template: "api/{version}/{controller}/{action?}",
defaults: new { version = "v1", controller = "Page" });
options.MapRoute(
name: "default",
template: "{*url}",
defaults: new { controller = "Home", action = "Index" });
});
}
您必须在调用app.UseMvc()之前找到您的调用app.UseStaticFiles(),该请求到静态文件没有到达路由中间件,因为调用按注册顺序执行的中间件.
内容总结
以上是互联网集市为您收集整理的c# – AngularJs Routing,MVC6 / vNext / .NET5和MVC View全部内容,希望文章能够帮你解决c# – AngularJs Routing,MVC6 / vNext / .NET5和MVC View所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。