C# 使具有完整路径的文件适合用作HTML中的href

C# 使具有完整路径的文件适合用作HTML中的href,c#,html,asp.net-mvc,razor,filepath,C#,Html,Asp.net Mvc,Razor,Filepath,我有一段代码,就像 string.Format("<a href='{0}' class='hidden'>{0}</a>", Path.Combine(filePathPrefix , string.Join("-", new string[] { fOrgName, fCatName, f.filename }))) 它不是一个可点击的链接,如果你点击它,就会出现一个about:blank页面。但是,如果我将链接粘贴到浏览器中并发出请求,则它将更改为 file://

我有一段代码,就像

string.Format("<a href='{0}' class='hidden'>{0}</a>", Path.Combine(filePathPrefix , string.Join("-", new string[] { fOrgName, fCatName, f.filename })))
它不是一个可点击的链接,如果你点击它,就会出现一个
about:blank
页面。但是,如果我将链接粘贴到浏览器中并发出请求,则它将更改为

file:///C:/users/me/documents/visual%20studio%202013/Projects/mypoj/myproj/Assets/someorg-somecat-somepic.png
并妥善处理资产。这意味着我需要某种方法在页面上以该形式获取链接。这可能吗?如果是,我需要什么样的C类和方法?

尝试更改为:

string.Format("<a href=\"{0}\" class=\"hidden\">{0}</a>", ...);
string.Format(“,…);

您是否尝试过此方法:看起来此方法可能有效,如果有效,您将需要System.Uri。请意识到url仅适用于您。这与我在问题中所说的完全相同!不过,该链接仍然无法点击。“我想还有别的东西还没找到。”埃里克菲利普斯说了一个非常重要的观点。这就是为什么您应该只在数据库中存储相对路径,即
Assets\someorg somecat somepic.png
。然后,如果需要,您可以将其与类似于
Server.MapPath
的内容结合使用以获取完整的文件路径,或者类似于
Url.Content
的内容结合使用以获取Url版本。我还将提到,这将适用于IIS Express,但不适用于IIS,因为IIS将无法访问任何用户文件夹(即
c:\users\..
)。好的,我们开始吧。他正在尝试映射一条路径,问题是该路径在联机时不可用,因为它指向他机器上的资源。所以问题不在于string.Format,而在于他是如何引用资源的。@Brduca这是正确的,但我试图解决的问题是不同的。我的目标是修复“链接仍然不可点击。我猜还有其他东西丢失”。您正在尝试通过将“{0}”更改为“{0}”来解决此问题。请看这个:@Brduca啊,是的,你抓住我了;-)。我想单引号可能有问题。谢谢你提供的链接,现在我知道基本上没有区别。
string.Format("<a href=\"{0}\" class=\"hidden\">{0}</a>", ...);