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();
}
//...继续下面的代码
}
}
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。