【问题标题】:I don't want to postback my .aspx page我不想回发我的 .aspx 页面
【发布时间】:2012-02-27 10:49:22
【问题描述】:

我想从First.aspx 页面转到second.aspx 页面而不回发。我应该如何处理这种情况?有没有可能? 我正在这样做,但我不知道如何从处理程序获得响应。

向处理程序发送请求:

<script type="text/javascript" src="jqure.js"></script>
 function goMoz() { 
      $.post("Handler1.ashx", callback);
      function callback(data) { 
      alert(data);
    }
</script>

在 html 的正文中,我使用的是 html &lt;a id="buton" onclick="goMoz()"&gt;

我必须在处理程序中做什么才能转到second.aspx 页面?

我也在goMoz()中使用window.location = "Registration.aspx";

【问题讨论】:

  • window.location = "Registration.aspx"; 不能使用什么?这不应导致回发。
  • 我的意思是用 window.location = "Second.aspx";我的请求首先转到服务器然后响应我.....!我的页面是回发的。有人告诉我你可以使用处理程序的 context.request.response ..但我不知道它是怎么回事......!
  • window.location 将导致完整的往返和完整的页面刷新,但不是回发。但也许整页刷新是你想要避免的,所以我添加了一个答案,显示如何只更新页面的一部分。
  • @MountainLion 请不要添加这样无用的表情符号。
  • @DonaldDuck:正如我向 abccd 解释的那样,这完全是无意的。我非常很抱歉,我再也不会这样做了(我一开始真的不想这样做)。我也已经被烤过了。

标签: javascript asp.net jquery postback


【解决方案1】:

有几件事:首先,您的 javascript 示例代码有语法错误,您缺少结束符 }。

第二:如果要加载不同页面的内容并使用当前页面内的内容,查看jquery中不同的Ajax functions,例如load

   function goMoz() {
       $.post("Handler1.ashx", callback);

       function callback(data) {
           alert(data);
           // Load response of "second.aspx" 
           // into element with ID results.
           $("#results").load("second.aspx");
       }
   }

请注意,将“整个页面”加载到当前页面的元素中时应该小心。如果“整个页面”包含带有 html、body 等标签的完整 HTML 标记,那么您的 HTML 很容易变得无效。但是,您可以通过在 url 后添加选择器来定义实际抓取并插入当前页面的页面部分:

$("#results").load("second.aspx #whatToLoad");

这只会在当前页面的结果元素中加载 whatToLoad 元素的内容。

【讨论】:

    【解决方案2】:

    在 aspx 页面中

     function goMoz(islem) {
                $.ajax(
                    {
                        type: "POST",
                        url: "../Handler1.ashx",
                        data: "islem=" + islem,
                        dataType: "html",
                        success: function (data) {
    
                          alert(data)
    
                        },
                        error: function (data) {
                            alert("Error")
                        }
                    });
            };
    

    在 ashx 处理程序中。

      public void ProcessRequest(HttpContext context)
            {
                string isl= context.Request.Form["islem"];
                 .....same codes
                context.Response.Write("return values");
    
    
              }
    

    希望对你有帮助

    【讨论】:

    • 看我的处理程序已经在工作了......!我想知道我如何传递 second.aspx 的响应,例如 context.Response.Write("second.aspx");或类似的东西。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    • 2011-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多