我有一个ASP.NET MVC页面,我试图显示友好的URL.
所以,我在家庭控制器中有一个类别视图,它接受一个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,它正在砍掉第一个../,因为它正在做一些验证.
解决方法
生成图像路径时,请使用
Url.Content方法.
<img src="@Url.Content("~/AdminUploadContent/bikes.gif")" />
或者如果使用WebForms视图引擎:
<img src="<%= Url.Content("~/AdminUploadContent/bikes.gif") %>" />
原文地址:https://www.jb51.cc/aspnet/250820.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。