Razor:导航到新网页

Razor: Navigate to new webpage

我正在尝试导航到 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>

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

WebBrowser 控件在 ASP.NET 中没有位置。相反,您应该使用 HttpClient class to make an HTTP request to the page that you want to fetch (or "scrape"). It has a GetStringAsync method 即 returns 响应(如果您请求的资源是网页,通常 HTML)。

一旦你有了 HTML,有几种方法可以解析它。避免使用正则表达式或字符串方法。为此,请使用 HtmlAgilityPack or AngleSharp 之类的包。它们针对解析 DOM.

进行了优化