【发布时间】:2014-12-01 20:40:59
【问题描述】:
我正在编写一个 Web 应用程序,它解析文本文件并用超链接替换行号,以便用户可以轻松导航到他们输入的文本文件的特定行号。
我正在打印存储在 .cshtml 视图中的 Viewbag 中的对象列表。当我将所有内容打印为普通文本时,一切看起来都很好。例如:
--------
Summary
--------
Version 23.00.00.00
Error 007 2 at lines (09/02/2014-06:13:32.607, 5662);
Timeouts 0
Reboots 1 at lines (09/02/2014-06:12:59.900, 2)
但是当我将行号打印为超链接时,会发生这种情况:
--------
Summary
--------
Version 23.00.00.00
Error 007 2 at lines (09/02/2014-06:13:32.607, [5662]
);
Timeouts 0
Reboots 1 at lines (09/02/2014-06:12:59.900, [2]
)
当超链接作为普通字符串打印时,我的解析器工作得很好,所以看起来 razor 在每个超链接之前添加了额外的空格,在每个超链接之后添加了额外的换行符。这是视图中的代码:
<pre>
@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> //hyperlink printed
}
if (ViewBag.links[i].isHyperLink == false)
{
@ViewBag.links[i].text; //normal text printed
}
}
</pre>
我是 asp.net/razor noob,所以非常感谢任何帮助。感谢您的宝贵时间。
附:我已将应该超链接的文本放在括号内。超链接功能没有很好地延续到 stackoverflow。
编辑:这是所要求的来源
--------
Summary
--------
Version 23.00.00.00
Error 007 2 at lines (09/02/2014-06:13:32.607, <a href="C:\Users\GBALL\project\project_folder\website\Home\UploadFiles~/App_Data/Uploads/bloop.txt">5662</a>
);
Timeouts 0
Reboots 1 at lines (09/ <a href="C:\Users\GBALL\project\project_folder\website\Home\UploadFiles~/App_Data/Uploads/bloop.txt">2</a>
/2014-06:12:59.900, 2)
【问题讨论】:
-
您能否发布生成的 HTML,以便我们查看解析和渲染后的样子?
-
我发布的前两个块是生成的 html。唯一的区别是第二个块有括号数字而不是实际的超链接。除此之外,它们与生成的 html 相同。
-
好的,所以在生成的html中,除了id值之外,是否有其他文本或字符被添加到超链接文本中?
-
不,您发布的前两个块是 HTML 在浏览器中的表示。查看源并发布实际生成源。
-
您将链接包装在
<pre>中,这意味着将保留所有空格和换行符,包括链接之前的制表符/空格和链接之后的换行符。有什么理由使用<pre>而不是常规的<div>或<span>?
标签: asp.net-mvc asp.net-mvc-4 razor hyperlink