1
我建立一个网站,我想只有一个控制器,它看起来就像图像文件的请求,并且网址:我的路线包括,当我不指定控制器
\main-page\sub-page
main-page
是不控制器和sub-page
是而不是这个动作,它们只是数据库中的页面名称,我想在其中进行渲染。换句话说,有很多页面,我不想为每个页面都创建一个控制器。事实上,我只想要一个Home
一个Index
动作,看起来像这样的控制器:
Function Index(ByVal Page As String, ByVal SubPage As String) As ActionResult
而且只有一个视图,它使用的参数动态加载的页面内容。
以下航线几乎作品:
routes.MapRoute(
"Default", _
"{page}/{subpage}", _
New With {.controller = "Home", .action = "Index", .page = "Landing", .subpage = "Index"}
)
但问题是,它也捡的文件,例如,/images/somefile.jpg
请求,因为该路由相匹配。
所以问题是:如何在没有错误地获取图像请求的情况下做到这一点,或者是否有完全不同的方式来支持我想要做的事情?
如果这条路径上的文件,应在路由机制踢之前返回,这就是它是如何工作在默认情况下,所以我会某处寻找合适的方案其他。如果该路径中不存在文件,路由机制将只处理路径。 – LukLed
现在你提到它,它看起来好像文件请求是针对不存在的文件的,但这也不好,因为那么,而不是在页面中获取缺少的图像,整个页面崩溃(因为应用程序看起来在不存在的页面的数据库)。另外,我确定浏览器会为返回404的图像做一些不同的事情,而不是返回一些ASP.NET错误的图像。所以我想下一个问题是:我该如何处理这个新问题? –
route.IgnoreRoute()为静态资源路径可能是在这里的方式 – LukLed