【发布时间】:2010-08-02 20:33:47
【问题描述】:
我有一个 ASP.NET MVC 页面,我试图在其中显示友好的 URL。
所以,我在 Home Controller 中有一个 Category View,它接受 categoryKey 值来获取页面的内容。
例如:http://localhost/Home/Category/Bikes 获取自行车内容。
在我的 Global.asax.cs 中,我有以下处理方法:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Category",
"{controller}/{action}/{categoryKey}",
new { controller = "Home", action = "Category", categoryKey = "" });
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
这很好用,它可以获取内容,但是,我从内容管理系统获取内容,以便于编辑。当您在内容管理上添加图像时,它会添加具有相对路径的图像:
<img src="../AdminUploadContent/bikes.gif" alt="Bikes" />
现在,如果我转到“http://localhost/Home/Category”,并且该图像标签位于基本页面上,它将拉出图像。但是,如果我转到“http://localhost/Home/Category/”,或添加“/Home/Category/Bikes”/ 的实际类别,图像不会显示。图片的属性指向“http://localhost/Home/AdminUploadContent/bikes.gif”。
我可以在 Global.aspx.cs 文件中放入什么来处理相对路径吗?即使我手动编辑内容管理以添加 ../../AdminUploadContent/bikes.gif,它也会切断第一个 ../,因为它正在进行一些验证。
【问题讨论】: