【问题标题】:ASP Classic VBScript to ASP.NET C# ConversionASP Classic VBScript 到 ASP.NET C# 的转换
【发布时间】:2013-08-08 01:18:21
【问题描述】:

我熟悉 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#)?

【问题讨论】:

  • 这段代码实际上做什么?您通常不希望执行从一种语言到另一种语言的直接转换,或者从一种框架或范式到另一种的直接转换。相反,您希望在目标环境中实现所需的功能。您想在这里实现什么功能?
  • 嗨@David,我从这个网站ipinfodb.com/ip_location_api.php得到这个例子,它是VB形式,但我不明白我在这方面需要什么帮助,我在ASPX.Net中需要它
  • 所以在我看来,这段代码正在发送到一个 URL (api.ipinfodb.com) 并加载 XML,然后它循环遍历 XML 文档根目录的前 10 个子节点并将将节点名称和文本放入一个段落标签中,该标签会被放入网页的 DOM 中。
  • @user2651088:不是听起来没有建设性,但是如果您不知道代码的用途,那您为什么需要它?您打算实现什么功能?您只是在网上找到的应用程序中随机添加代码,还是实际上是在尝试实现特定功能?
  • 是的@KarlAnderson 现在我在 ASPX.Net 中的表现如何?任何提示或建议我都不需要完整代码

标签: c# asp.net .net


【解决方案1】:

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

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

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

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();

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

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

【讨论】:

    【解决方案2】:

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

    1. LoadXmlData 方法 - 使用 XmlDocument 通过 XmlDocumentLoad 函数从 URL 加载。阅读ASP.net load XML file from URL 获取示例。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-22
      • 1970-01-01
      相关资源
      最近更新 更多