C# Razor:导航到新网页

C# Razor:导航到新网页,c#,razor,webbrowser-control,razor-pages,C#,Razor,Webbrowser Control,Razor Pages,我正在尝试导航到C#razor中的另一个页面。这是我的密码。但是什么也没发生。线程似乎根本没有启动: @using System.Windows.Forms; @using System; @using System.Threading; @{ var message = ""; void runBrowserThread(Uri url) { var th = new Thread(()=> { var

我正在尝试导航到C#razor中的另一个页面。这是我的密码。但是什么也没发生。线程似乎根本没有启动:

@using System.Windows.Forms;
@using System;
@using System.Threading;

@{
    var message = "";

    void runBrowserThread(Uri url)
    {
        var th = new Thread(()=>
        {
            var br = new WebBrowser();
            br.DocumentCompleted += browser_DocumentCompleted;
            Application.Run();
            br.Navigate(url);
        });
        th.SetApartmentState(ApartmentState.STA);
        th.Start();
    }

    void browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        var br = sender as WebBrowser;
    }

    Uri uri = new Uri("http://www.google.com");
    runBrowserThread(uri);
}



<body>
    <span id="myspan">@message</span>

</body>
@使用System.Windows.Forms;
@使用制度;
@使用系统线程;
@{
var message=“”;
无效runBrowserThread(Uri url)
{
var th=新线程(()=>
{
var br=新的WebBrowser();
br.DocumentCompleted+=浏览器\文档已完成;
Application.Run();
br.导航(url);
});
th.SetApartmentState(ApartmentState.STA);
th.Start();
}
无效浏览器\u文档已完成(对象发送者,WebBrowserDocumentCompletedEventArgs e)
{
var br=作为网络浏览者的发送者;
}
Uri=新的Uri(“http://www.google.com");
runBrowserThread(uri);
}
@信息

一旦开始在web应用程序中使用System.Windows.Forms键入
,您就应该知道自己做错了什么

WebBrowser控件在ASP.NET中没有位置。相反,您应该使用对要获取(或“刮取”)的页面发出HTTP请求。它有一个返回响应的函数(如果您请求的资源是网页,则通常为HTML)


一旦你有了HTML,有几种方法可以解析它。避免使用正则表达式或字符串方法。为此,请使用类似或的软件包。它们被优化用于解析DOM。

我只是以google.com为例。我实际上想访问页面的DOM。但我甚至无法导航到它。这是一个XY问题-。为什么,在服务器端,你想加载google.com(或其他一些网站)及其内容?我不明白。我想访问HTML页面上的元素以读取其值。我认为这是许多人的共同问题或做法。我不能使用javascript,因为域与主页不一样。