【发布时间】:2014-12-09 04:41:52
【问题描述】:
我正在创建一个网页,它解析文本文件并将“重要”行号输出为用户可以单击的超链接,然后转到输入文本文件的行号。自然,这意味着通过单击超链接,浏览器必须导航到文本文件。问题在于那部分。单击超链接时,没有任何反应。没有错误,什么都没有。
下面是相关的cshtml代码:
<pre>
@results
@for (int i = 0; i < ViewBag.links.Count; i++)
{
if (ViewBag.links[i].isHyperLink == true)
{
{<a href="@ViewBag.links[i].url">@ViewBag.links[i].text</a>} //HYPERLINKS PRINTED TO PAGE HERE
}
if (ViewBag.links[i].isHyperLink == false)
{
@ViewBag.links[i].text;
}
}
</pre>
以下是相关的 C# 代码:
MatchCollection mc = Regex.Matches(output, @", [0-9]+?\)"); //find matches in txt file
List<TextandHyperlink> links = new List<TextandHyperlink>(); //create list of hyperlink objects
TextandHyperlink tempLink = new TextandHyperlink(); //create
int length;
string temp = "";
// Get line numbers
for (int i = 0; i < mc.Count; i++)
{
if (i > 0)
tempLink = new TextandHyperlink();
length = mc[i].Value.Length;
temp = mc[i].Value.Substring(2, length - 3);
tempLink.text = temp;
tempLink.url = relativePath; //ASSIGN PATH TO TXT FILE HERE
tempLink.isHyperLink = true;
links.Add(tempLink);
}
ViewBag.links = links;
我已经验证 relativePath 是我电脑上文本文件的正确路径。以防万一,这是我正在使用的路径示例: relativePath = C:\Users\USER\PROJECT\Website\Website\Home\UploadFiles~/App_Data/Uploads/bloop.txt
提前感谢您的帮助!
编辑:这是生成的html:
--------
Summary
--------
Version 23.00.00.00
Error 2 at lines (09/02/2014-06:13:32.607, <a href="C:\Users\USER\PROJECT\Website\Website\Home\UploadFiles~/App_Data/Uploads/bloop.txt">5662</a>); (09/02/2014-06:15:10.756, <a href="C:\Users\USER\PROJECT\Website\Website\Home\UploadFiles~/App_Data/Uploads/bloop.txt">7397</a>)
Timeouts 0
Inits 1 at lines (09/02/2014-06:12:59.900, <a href="C:\Users\USER\PROJECT\Website\Website\Home\UploadFiles~/App_Data/Uploads/bloop.txt">2</a>)
【问题讨论】:
-
发布生成的 HTML。错误可能在那里......
-
你试过 Path.Combine 吗?用于设置路径。
-
我已将生成的 html 作为编辑发布。是的,我正在使用 Path.Combine 创建 relativePath。
-
如果不使用
file://协议,您将无法链接到文件系统样式的路径,即 URL 必须是file://C/Users...。然而,即便如此,由于浏览器与本地文件系统的集成,它也只能在本地运行。远程,您需要通过您的网络服务器使用相对于您网站的文档根目录的实际 URL 来提供文件。 -
如果不使用
file://协议,您将无法链接到文件系统样式的路径,即 URL 必须是file://C/Users...。然而,即便如此,由于浏览器与本地文件系统的集成,它也只能在本地运行。远程,您需要通过您的网络服务器使用相对于您网站的文档根目录的实际 URL 来提供文件。