关于MVC中多级文件夹路由设置问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于MVC中多级文件夹路由设置问题相关的知识,希望对你有一定的参考价值。

最近在研究MVC 遇到一个问题
如下路径
http://localhost/Admin/Manage/MemberManage/BaseInfo/
我该怎么配置路由呢
以下是我瞎搞的

routes.MapRoute(
"test", // 路由名称
"Admin/Manage/MemberManage/BaseInfo/id", // 带有参数的 URL
new controller = "MemberManage", action = "BaseInfo", id = UrlParameter.Optional // 参数默认值
);

运行出来 是 报错的
未找到视图“BaseInfo”或其母版视图。搜索了以下位置:
~/Views/MemberManage/BaseInfo.aspx
~/Views/MemberManage/BaseInfo.ascx
~/Views/Shared/BaseInfo.aspx
~/Views/Shared/BaseInfo.ascx
为什么他找 MemberManage呢 前面的Admin/Manage去哪了
求高人来个配置

routes.MapRoute(
"test", // 路由名称
"Admin/Manage/MemberManage/BaseInfo/id",
new controller = "MemberManage", action = "BaseInfo", id = UrlParameter.Optional
);

比如你的请求是Admin/Manage/MemberManage/BaseInfo/1
它会在你定义好的route表里找出匹配的,然后根据你定义的controller,action去查找视图
[action]
/Controllers/MemberManageController - > BaseInfo
[view]
~/Views/controller/action.aspx
参考技术A 我想你是把 BaseInfo.aspx 页面放到了 Admin/Manage/MemberManage 这个路径下文件夹下吧???
MVC是不会根据 一个一个文件夹这样收索出页的
他只会 从view 文件夹,再到 controller 名字的文件夹,再到 action名字的 视图,这样来,不像webfrom 那样 一个一个文件夹 这样收索出页面
参考技术B 你先尝试一下吧除了这条以外的所有路由先注释掉,看看是不是优先级太低了

React多级路由懒加载问题

React启用懒加载后,react-router使用BrowserRoute模式,二级路由页面加载其他页面时会报错“找不到相应的chunk文件”。

如页面demo/A中懒加载demo/B,会报错“react-dom.development.js:13035 Uncaught ChunkLoadError: Loading chunk B failed.”。查看network请求发现懒加载B时的js请求路径为demo/B/js/chunkName.js,而webpack打包后的统一放在了路径dist/js下,故找不到对应的chunkName.js。

 

解决方法:

1.将react-router的模式改为HashRouter,由于采用#hash来实现路由,请求的chunkName.js路径永远在/js路径下。

2.修改webpack的output参数,添加publicPath属性为“/”,这样所有的资源引用都将使用绝对引用方式,在多级路由下也能正常工作。

 

以上是关于关于MVC中多级文件夹路由设置问题的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC如何设置路由启动

Beego框架 MVC Controller 参数设置路由设置

asp.net MVC如何设置路由器

ASP.NET MVC中这个URL该怎么设置路由

.net mvc4如何设置自定义路由

[路由设置及视图入门]