POST数据,如果确实提交了。那你
用 string.IsNullOrEmpty(context.Request.QueryString["id"]) 来获取。
ASHX是一个HttpHandler所以 如果楼主熟悉ASP_NET结构 可能会更加了解一些:
Page和Handler都需要一个上下文环境的 这个环境在CLR中为HttpContext 这个对象包含了WEB请求的Request Response等信息
只是Page类的HttpContext微软已经帮你做好了 所以你直接可以使用Page.Request之类的 其实这只是对HttpContext的一个引用
HttpHandler和Page不一样 要实现一个HttpHandler,必须通过IHttpHandler这个接口实现 因为这不是一个类 微软是不可能帮你先封装好Request Response之类的数据了
为了使开发人员可以使用Request之类的数据 微软为IHttpHandler提供了一个这样的方法:void ProcessRequest (HttpContext context);
所以你可以通过context.Request.Form["aaa"]这样的方法来获取参数
简单示例如下:
public class HttpHandlerA:IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string param = context.Request.Form["aaa"]
context.Response.ClearContent()
context.Response.ContentType="text/xml"
context.Response.ContentEncoding = Encoding.UTF8
context.Response.Cache.SetExpires(DateTime.Now)
context.Response.Write("<?xml version=\"1.0\" encoding=\"utf-8\" ?>")
context.Response.Write("<XML>")
context.Response.Write(param)
context.Response.Write("</XML>")
context.Response.End()
}
}
此外 HttpContext.Current.Request.Form["aaa"]应该也是有用的
希望对楼主有用
用JS 的escape函数转换成字符串,然后用jQuery+ashx的Ajax方式post给ashx文件,ashx里面接收到post的数据以后保存到数据库,各种html内容都能保存(我试过了,没有问题),然后读取的时候直接从数据库读取,不过读取完以后得用js的unescape函数解析一次,譬如你读取出来放到<div id="div1" runat="server"></div>里面,那你后台从数据库读取出来的内容直接用div1.innerHTML=公文内容,这时候再在页面写一段JS代码:<script type="text/javascript">
var divobj = document.getElementsByID("<%=div1.ClientID %>")
divobj.innerHTML = unescape(divobj.innerHTML)
</script>
这样就能正常显示出你的公文了,绝对没有问题,我就是这样做的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)