Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 在MVC中解析虚拟路径_Asp.net Mvc_Url_Resolve_Urlhelper - Fatal编程技术网

Asp.net mvc 在MVC中解析虚拟路径

Asp.net mvc 在MVC中解析虚拟路径,asp.net-mvc,url,resolve,urlhelper,Asp.net Mvc,Url,Resolve,Urlhelper,你好, 我的地址是这样的:~/Content/Files/AdImages/20/20_thumb.jpeg,我需要解决这个问题。这是在ASP.net中使用Control.ResolveUrl()完成的 根据这篇文章,我应该使用这样的东西: urlHelper.Content(“~/Content/Files/AdImages/20/20_thumb.jpeg”) 但是,即使Im不在解决方案的根目录中(内容放在根目录中),它也会返回以下url:/Content/Files/AdImages/20

你好,

我的地址是这样的:~/Content/Files/AdImages/20/20_thumb.jpeg,我需要解决这个问题。这是在ASP.net中使用Control.ResolveUrl()完成的

根据这篇文章,我应该使用这样的东西:

urlHelper.Content(“~/Content/Files/AdImages/20/20_thumb.jpeg”)

但是,即使Im不在解决方案的根目录中(内容放在根目录中),它也会返回以下url:/Content/Files/AdImages/20/20_thumb.jpeg

我如何解决这个问题

请注意,这是来自html帮助程序扩展的


//SnowJim

的工作是始终解析根,以便看到正确的行为。如果您希望它与您当前所在的路径相对,那么您的路径不应以~或/

开头。是的,~在asp.net中的工作方式与在mvc中的工作方式不同。相反,最好的选择似乎是将~替换为:

Request.Url.GetLeftPart(UriPartial.Authority)

因此,不是:

urlHelper.Content("~/Content/Files/AdImages/20/20_thumb.jpeg")
使用


谢谢,我得到了路径~/Content/Files/AdImages/20/20_thumb.jpeg,我可以将其转换为服务器端的绝对路径。在这种情况下,我需要的是图像的相对路径。这可能会导致img src,如.././Content/Files/AdImages/20/20_thumb.jpeg。我该怎么做?那我想我不清楚你想做什么。听起来你明白绝对路径。我想我不明白你为什么想要相对路径。您只需键入“../../Content/TheRestOfYourPath”。你是说有时候你想让它发出3。。像这样“../../../Content”?如果是这样的话,那通常是在使用绝对路径时。问题是img src将是/Content/Files/AdImages/20/20_thumb.jpeg,而这是当url看起来像这样的时候:(不在根目录中,如您所见)。我建议将src翻译成.././Content/Files/AdImages/20/20_thumb.jpeg等格式,以获得从视图到图像的正确路径。这不应该硬编码,因为助手可以在不同位置的不同页面上使用。在ASP.NET中,有Control.ResolveUrl()来获取相对路径,在MVC中如何实现同样的操作?需要记住的是,MVC的范例在这方面与web表单有着根本的不同。在MVC中,路由不会像在web表单中那样映射到视图的物理路径,在web表单中,您通常提供特定的.aspx页面。对于静态内容(例如,图像、css等),它们*确实指向物理资产——但由于这些原因,将其与MVC视图相关联会有问题。好吗?Så不可能像我描述的那样指向img重新唤醒,那么我该怎么做?我的文件存在她~/Content/Files/AdImages/20/20_thumb.jpeg,我如何在img元素中浏览此文件?我不同意此评论。见史蒂夫·米切洛蒂的评论@Url.Content(“~/Content/Files/AdImages/20/20_thumb.jpeg”)应该可以正常工作。为什么要使用
urlHelper.Content
?为什么不干脆
Request.Url.GetLeftPart(UriPartial.Authority)+“/Content/Files/AdImages/20/20_thumb.jpeg”
urlHelper.Content( Request.Url.GetLeftPart(UriPartial.Authority) + "/Content/Files/AdImages/20/20_thumb.jpeg")