jquery异步调用post的一些注意事项

1.aspx网页,只要放在form标签的html按钮标签 input的type="submit",则无论form是否添加 runat="server",点击它,都会像服务器控件一样触发回发给后的.cs文件处理

例如

 <form id="form1">
    <div>
      <input class="subBtn" type="submit" />
    </div>
</form>

 

2.要使得在aspx网页中不回发给后台,则应采用

<form id="form1"> 
  <div> 
    <input class="subBtn" type="button" /> 
  </div>
</form>

使用这种方式才能被页面内的jquery得到并采用post等异步方式传送数据到指定后台

 

3.asp.net中的<asp:label>标签最终在浏览器端表现的是<span>标签形式,如将传回的数据赋给它或从它那里得到数据,需要使用$("").text()方式;

  asp.net中的<asp:TextBox>标签最终在浏览器端表现的是<input>标签形式,如将传回的数据赋给它或从它那里得到数据,需要使用$("").val()方式;

  最后表现形式可以在生成页面查看源代码来得到

 

4.调试:我的调试方式是 visual studio 加.cs代码断点+firefox的firebug断点的方式,两者可以协同配合,例如,点击input类型为button标签,调用后台的加入断点的ashx文件,跳过断点后,可进入在firebug中的断点,进行调试

(微软等浏览器使用过,但感觉还是不如firefox的firebug好用,至少在查看布局和相关的css等方面后者更好用)

 

5.如在ashx文件中使用到session的,则要进行特别的处理

在这里引用一篇文章:

 

在一般事务处理页面,可以轻松的得到 Request,Response对象,从而进行相应的操作,如下:

HttpRequest Request = context.Request; 

HttpResponse Response = context.Response;

但是要得到 Session的值就没有那么简单了。比如你要在ashx得到保存在Session中的登录帐号Session["userAccount"]

如果你只是context.Session["userAccount"]的话是会报 “未将对象引用设置到对象的实例”的异常

所以,如果要想取Session中的值 ,需要如下所示

1、引入 命名空间:

using System.Web.SessionState;

2、实现IRequiresSessionState接口,具体如下  

    /// <summary>
    /// $codebehindclassname$ 的摘要说明
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    public class AddUserInfo : IHttpHandler,IRequiresSessionState //就是这样显示的实现一下,不用实现什么方法
    {

        public void ProcessRequest(HttpContext context)
        {

      //...

       //这样你就可以如下 操作了

                if(context.Session["userAccount"] != null)

      {

        string account = context.Session["userAccount"].ToString();

      }

      //...继续下面的代码

    }

  }

 

 

 



 

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。