ASP经典VBScript到ASP.NET C#的转换

本文关键字:ASP 转换 经典 VBScript NET | 更新日期: 2023-09-27 18:26:45

我熟悉ASP.NET,但不熟悉Visual Basic。

这是Visual Basic代码:

 myxml="http://api.ipinfodb.com/v3/ip-city/?key="&api_key&"&ip=" &UserIPAddress&"&format=xml"
 set xml = server.CreateObject("MSXML2.DOMDocument.6.0")
 xml.async = "false"
 xml.resolveExternals = "false"
 xml.setProperty "ServerHTTPRequest", true
 xml.load(myxml)
 response.write "<p><strong>First result</strong><br />"
 for i=0 to 10
     response.write xml.documentElement.childNodes(i).nodename & "  :  "
     response.write xml.documentElement.childNodes(i).text & "<br/>"
 NEXT
 response.write "</p>"

这个代码中发生了什么?

如何将其转换为ASP.NET(C#)?

ASP经典VBScript到ASP.NET C#的转换

根据在评论中快速浏览链接到的网站,预期功能似乎是向URL发出请求并接收响应。该网站上给出的第一个例子是:

http://api.ipinfodb.com/v3/ip-city/?key=<your_api_key>&ip=74.125.45.100

您可能可以使用类似System.Net.WebClient对象的东西来发出HTTP请求并接收响应。MSDN上的示例可以针对您的URL进行修改。也许是这样的:

var client = new WebClient();
client.Headers.Add ("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
var data = client.OpenRead(@"http://api.ipinfodb.com/v3/ip-city/?key=<your_api_key>&ip=74.125.45.100");
var reader = new StreamReader(data);
var result = reader.ReadToEnd();
data.Close();
reader.Close();

(还有WebRequest类,它似乎共享大致相同的功能。)

此时,result变量包含来自API的响应。您可以根据需要进行处理。

从Visual Basic代码的外观来看,我认为应该创建两个方法来将其"转换"为ASP.NET C#网页:

  1. LoadXmlData方法-使用XmlDocument通过XmlDocumentLoad函数从URL加载。例如,请阅读ASP.net从URL加载XML文件。

  2. BuildDisplay方法-使用ASP.NET PlaceHolderPanel创建一个容器,将段落标记和各个结果注入其中。