静态页面的 MVC Url 辅助方法?
如果我有一个类似于 "/something/something/"
的网址,并且我的网站是 http://mysite.com
并且我想链接到该网址,是否存在像 Url.Content();
这样的方法会发现 IIS 中站点的虚拟目录并相应地映射到 url 路径?
我尝试了Url.GenerateContentUrl()、Url.Action()、Url.Content()、Url.RouteUrl()
If I have a url like "/something/something/"
and my site is http://mysite.com
and I want to link to that something url, is there a method like Url.Content();
which will discover the virtual directory of the site in IIS and map appropriately to a url path?
I tried Url.GenerateContentUrl(), Url.Action(), Url.Content(), Url.RouteUrl()
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
为什么有
Url.Content
时喜欢?它将处理虚拟目录名称,如果您的一侧部署在根
http://example.com
它将返回/something/something
并且如果您有虚拟目录http://example.com/applicationname
它将返回/applicationname/something/something
。因此,每次需要链接静态资源时,都应该使用
Url.Content
。例如:无论您的站点部署到哪里,都将始终正确解析图像 url。
Why like when there is
Url.Content
?which will take care of the virtual directory name and if your side is deployed at the root
http://example.com
it will return/something/something
and if you have a virtual directoryhttp://example.com/applicationname
it will return/applicationname/something/something
.So everytime you need to link a static resource you should always use
Url.Content
. For example:will always correctly resolve the image url no matter where your site is deployed to.
如果出于某种原因,您不能只使用 Url.Content,则可以使用 HostingEnvironment.ApplicationVirtualPath 或 HttpContext.Current.Server.MapPath。
但我想不出一个不能只使用 Url.Content 的充分理由。
If, for whatever reason, you can't just use Url.Content, you can use either HostingEnvironment.ApplicationVirtualPath or HttpContext.Current.Server.MapPath instead.
But I can't think of a good reason you can't just use Url.Content.
我的假设是:
您网站的根目录中有一个类似
myfile.jpg
的文件。然后你想要一个像这样的网址:对吗?
您需要做的就是将其添加到 Global.asax.cs 中的路由中:
是的,它也应该适用于子文件夹。
This is what I assume:
You have a file like
myfile.jpg
on the root on your site. Then you want a url like:Right?
All you need to do is add this in yours routes in
Global.asax.cs
:Yes it should work on sub folders too.