我正在创建一个网页,该网页解析文本文件并输出“重要”行号作为超链接,用户可以点击这些超链接,然后转到输入文本文件的行号。当然,这意味着通过单击超链接,浏览器必须导航到文本文件。问题在于那部分。单击超链接时,没有任何反应。没有错误,只是没有。
以下是相关的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>)
答案 0 :(得分:0)
如果您确定自己的路径和文件名是正确的,那么权限将是另一个问题。例如,在Windows Server计算机上,您必须确保使用相同的用户&#39;运行exe / 网页 / operation(可能是本地帐户,网络服务帐户等)对该文件至少具有 显式读取权限。从网页访问文件是非常困难的,因为已经成为安全机制,权限就是其中之一。
(请注意 - 在您的错误消息中 - 您的文件路径确实看起来很笨拙......漂浮的 tilda 是可疑的)