微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

[ASP.NET MVC]如何设定Area底下的页面为起始页(网址路由Routing)

[ASP.NET MVC]如何设定Area底下的页面为起始页(网址路由Routing)


今天突然收到朋友的Line : 你知道怎么把MVC Routing设定为Area底下的页面吗?

当下很帅气的回复:在Global底下Application Start里的Routing设定就好了阿(烟)

但其实这是很不负责的答案阿XDD 回家到电脑旁赶紧试一下!

首先要先浅谈一下MVC的Area

在开发较大型的MVC网站中,通常会进行模块化的规划,如一直在同一个Controller数据夹底下新增会越来越庞大

一个问题就是Controller不允许有相同命名的存在,偏偏模块中常有父子关系,有时子模块命名相同就会造成错误

为了区别而去修改命名又不是一个好架构,以上种种因素都会造成维护上的困难

故我们通常会在项目底下加入Area,每个Area底下又会有独自的MVC数据夹,Area通常会看公司&网站的属性去规划

以我前公司的经验,因是内部系统,故我们会By部门去切割Area,当然电子商务网站,就可考虑By功能

Area规划及使用方式,可参考以下文章

[MVC]项目客制化方式

使用Areas分离ASP.NET MVC项目(前后台以及对应功能模块)

切割Area后但存在相同命名Controller依然出错可参考此篇

设定MVC的Routing

以下在项目新增一个SurveyArea,并新增一个Hello的Controller,在产生一个Index的View

image

再来我们执行网站,该页面的网纸就会如下:

http://localhost:9937/SurveyArea/Hello/index

http://localhost:9937/Area/Controller/View

image

那要怎么让使用者打http://localhost:9937/就能进到此页面

这都定义在Global.asax里面RouteConfig的静态类

image

进入RouteConfig,会发现认会是以下的Code

可看到Routing认对应的Controller、action、Get参数

MVC会逐笔去对应Contorller,并产生以上的网址

image

但这种方式是不会去扫Area底下的,故我们要指定Area让他去抓底下的Contorller

image

Done!!

image

原文:大专栏  [ASP.NET MVC]如何设定Area底下的页面为起始页(网址路由Routing)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐