新建一个mvc项目,直接运行Index.aspx不会报错,可以运行,但如果把Index.aspx设置为启动项后就报错了,404错,这是什么原因啊?
|
因为MVC项目里的aspx页面跟webform里的不同,不能直接作为启动项。你看到地址栏里访问的http://localhost/Home/Index并不是访问Home下的Index.aspx这个页面,而是访问Home/Index这个路由。这个路由注册在Global.asax里,默认情况它是访问HomeController下的Index这个Action,默认项目里Index这个Action返回一个ActionResult,这个ActionResult是展示Index.aspx的(你可以看到它return View()了)。因此MVC项目中,地址栏的url跟页面没有什么必然的关系,只是一个路由。路由可以展示一个aspx页面,也可以根本没有页面。
刚学习mvc,我觉着路由这块好麻烦,一般情况下做项目都要修改路由么?
@blog_doudou: 如果没什么特殊需要可以一直用一个默认路由即{controller}/{action}/{id}这样的,不过稍微大点的项目都要配的。这样的好处就是SEO并且url比较友好。
@水牛刀刀: 噢,谢谢了!
跟地址栏的默认地址有关系,设置为启动项后,默认地址就不是首页地址了。
先把mvc路由的知识了解熟吧
goal.config中的配置。路由。