0

我不知道为什么这个 .aspx 给了我:...

一个下载提示,一个烦人的下载。

我不知道出了什么问题。

我的代码:

  <%@ Page Language="C#" %>


<script runat="server">
        protected void Page_Load(object sender, EventArgs e)
      {
        var strURL = "http://www.google.com";

        System.Net.WebResponse objResponse = default(System.Net.WebResponse);
        System.Net.WebRequest objRequest = default(System.Net.WebRequest);
        string result = null;
        objRequest = System.Net.HttpWebRequest.Create(strURL);
        objResponse = objRequest.GetResponse();
        System.IO.StreamReader sr = new System.IO.StreamReader(objResponse.GetResponseStream());
        result = sr.ReadToEnd();
        //clean up StreamReader 
        sr.Close();

        //WRITE OUTPUT
        Response.ContentType = "application/html";
        Response.Write(result);//""
        Response.Flush();//""

    }
</script>

我还是不知道怎么回事!

4

2 回答 2

1

你不能有“全局”代码,你必须将它封装在一个方法中。

就像是:

<%@ Page Language="C#" %>

<script runat="server">
    protected void Page_Load( object sender, EventArgs e )
    {
        // Your code...
    }
</script>

这会在页面加载期间执行您的代码。

(我没有检查你的代码是否有意义。这个谷歌的东西对我来说有点奇怪......)

更新:

您还必须导入所需的命名空间,例如WebResponse

<%@ Page Language="C#" %>
<%@ Import namespace="System.Net" %>

<script runat="server">
    protected void Page_Load( object sender, EventArgs e )
    {
        // Your code...
    }
</script>

对您使用的所有命名空间重复此<%@ Import...%>指令。或者使用类的完整限定名,包括命名空间,例如System.Net.WebResponse.

第二次更新:

好的,这只是删除(其中一个?)逻辑错误的疯狂猜测:

代替:

var strURL = context.Server.UrlDecode(context.Request["http://www.google.com"]);

写:

var strURL = "http://www.google.com";

并查看它是否效果更好(根据您使用此答案的评论)。

第三次(最终?)更新:

如果这也无济于事,请尝试在 Visual Studio (Express) 中调试它并设置断点、单步调试代码、检查变量等。这里是调试的简短介绍

于 2012-08-23T18:05:52.437 回答
0

使用单文件页面模型有两个问题阻止您的代码工作。page_load 方法签名错误,上下文已经存在,没有传入。将代码更新为:

<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
  {
        var strURL = "http://www.google.com";

        System.Net.WebResponse objResponse = default(System.Net.WebResponse);
        System.Net.WebRequest objRequest = default(System.Net.WebRequest);
        string result = null;
        objRequest = System.Net.HttpWebRequest.Create(strURL);
        objResponse = objRequest.GetResponse();
        System.IO.StreamReader sr = new System.IO.StreamReader(objResponse.GetResponseStream());
        result = sr.ReadToEnd();
        //clean up StreamReader 
        sr.Close();

        //WRITE OUTPUT
        Response.ContentType = "text/html";//remove context
        Response.Write(result);//""

    }
</script>
于 2012-08-23T19:13:28.307 回答