Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/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
C# 如何将ASP.NET Web表单应用程序中的结果转换为URL?_C#_Asp.net - Fatal编程技术网

C# 如何将ASP.NET Web表单应用程序中的结果转换为URL?

C# 如何将ASP.NET Web表单应用程序中的结果转换为URL?,c#,asp.net,C#,Asp.net,我正在创建一个ASP.NET web表单应用程序来搜索PDF中的文本,如果PDF中有文本,它将在文本框中返回文件名和路径。到目前为止,一切都正常,但现在我准备走完整的道路,把它放在一个链接中 例如,结果是: https:\\www.mysite.com\example1.PDF 我想在文本框中显示一个超链接,该超链接可单击并简单标记为: Example 1 我想知道我使用ASP.NET Web窗体来执行此操作是否犯了错误,因为它只有一个文本框窗体控件,而没有富文本框。问题是我的结果存储在一个

我正在创建一个ASP.NET web表单应用程序来搜索PDF中的文本,如果PDF中有文本,它将在文本框中返回文件名和路径。到目前为止,一切都正常,但现在我准备走完整的道路,把它放在一个链接中

例如,结果是:

https:\\www.mysite.com\example1.PDF
我想在文本框中显示一个超链接,该超链接可单击并简单标记为:

Example 1
我想知道我使用ASP.NET Web窗体来执行此操作是否犯了错误,因为它只有一个文本框窗体控件,而没有富文本框。问题是我的结果存储在一个字符串生成器中,所以我不需要一个静态标签作为URL

以下是我所拥有的:

foreach (var f in files)
            {
                string pdfSearchMatch = ReadPdfFile(f.File, txtBoxSearchString.Text);
                if (pdfSearchMatch != null)
                {

                    string fileNameOnly = Regex.Replace(pdfSearchMatch, @"\\\\my\.test\.site@SSL\\Home\\Sections\\PDFs\\Courses\\.+?\\.+?\\.+?\\", "");
                    myCommand.CommandText = "select cc.pk1 as 'pid', f.file_name as 'xid', f.link_name as 'linkname' from course_contents cc join course_main cm on cc.crsmain_pk1 = cm.pk1 join course_contents_files ccf on cc.pk1 = ccf.course_contents_pk1 join files f on ccf.files_pk1 = f.pk1 where cm.course_id = 'COM-Syllabi' and f.link_name = '"+fileNameOnly+"'";
                    using (SqlDataReader sqlReader = myCommand.ExecuteReader())
                    {
                        while (sqlReader.Read())
                        {
                            string rid = Regex.Replace(sqlReader["xid"].ToString(), "/xid", "rid");
                            string pdfHyperlink = @"https://my.test.site/Home/pid-"+sqlReader["pid"].ToString()+"-dt-content-"+rid+sqlReader["xid"].ToString();
                            sb.AppendLine(pdfHyperlink);
                        }
                    }
                }
            }
            myConnection.Close();
            txtBoxResults.Text = sb.ToString();
我希望分配给
txtBoxResults.Text
的结果是可单击的链接


谢谢。

这是对您的代码进行的最小和最快的修复,但它不合适 无论您在哪里拥有文本框,只需创建一个

<asp:Literal ID="Literal1" runat="server" ></asp:Literal>
取代

Literal1.Text = sb.ToString();
看看它是怎么显示的,还没有测试过。仍然建议解决SQL注入和服务器连接上的额外负载,使其保持打开状态

更新:- 添加超链接部分尝试替换为同一行,可能会遇到转义问题

string pdfHyperlink = @"<a href='https://my.test.site/Home/pid-" + sqlReader["pid"].ToString() + "-dt-content-" + rid + sqlReader["xid"].ToString()+"'>Test</a>";
string pdfHyperlink=@”;

因此,您不想使用文本框控件,而是想使用超链接控件吗?我可以使用单个超链接控件以自上而下的列表动态显示0到多个结果吗?(每个“行”将是不同的链接)是,aspx中的内联c#将使它更容易。文本框中不能有可点击的链接,而且它在asp.net中没有限制,只有HTML。为什么需要在文本框中输出结果?有几种方法可以做到这一点。最简单的方法是有一个面板,在结果中创建动态超链接,并将它们添加到面板的子集合中。或者你可以使用一个文本控件,只输出纯html。我来试一试,是的,我将很可能在明天解决SQL注入问题,该页面不是活动的,所以目前没有威胁。另外,我正在关闭SQL Server连接,这只是我在上面的问题中输入的代码。酷。我所说的额外加载是指在
Read()
中执行所有处理,只需将
SQL
值分配给
列表(基本上是断开连接的对象),然后关闭SqlConnection并执行任何处理(创建链接等)之后,字符串生成器的所有结果都一起运行,即使我使用了appendLine,是否有一个属性可以使它以从上到下的格式显示,而不是以换行方式显示?我只是继续,在stringbuilder每次运行sqlReader时都向它添加了一个
string pdfHyperlink = @"<a href='https://my.test.site/Home/pid-" + sqlReader["pid"].ToString() + "-dt-content-" + rid + sqlReader["xid"].ToString()+"'>Test</a>";