从aspx页面获取json格式的响应,而不是纯html格式
get response from aspx page in json format instead of plain html
我想对服务器进行ajax调用。我需要获取页面say foo.aspx的html:Foo.aspx html:
<form>
<div>foo</div>
</form>
我从远程页面调用此页面,如:
$.ajax({
url: '/foo.aspx',
data: {},
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (response) {
}
});
我需要这个页面的html,但我的要求是这个页面的响应应该是JSON格式。即
{"myresponse": {
"id": "123",
"html":<HTML of foo.aspx>,
}}
我需要html作为json属性,因为我也需要从foo.aspx代码后面设置其他属性?如何以json格式而不是纯html格式从aspx页面获得响应?从服务器获取json格式的远程页面HTML和其他属性的其他方法是什么?我应该选择HTTPHandlers吗?如果是,我如何在HTTPHandler中获取foo.aspx的html?
您可能需要尝试覆盖页面的呈现方法:
protected override void Render(HtmlTextWriter writer)
{
var sw = new System.IO.StringWriter();
var tw = new HtmlTextWriter(sw);
base.Render(tw);
Response.Write(String.Format("{{'"myresponse'": {{ '"id": '"123",'"html'":'"{0}'"}}}}"
, Server.HtmlEncode(sw.ToString()).Replace("'n"," "));
Response.Flush();
Response.End();
}
很抱歉出现任何语法错误,并对回车的基本处理表示歉意。我想在page_load(Response.BufferOutput=true)期间缓冲输出会更好
如果需要HTML,请将数据类型更改为HTML。成功事件将返回html作为响应。
类似于:
$.ajax({
url: '/foo.aspx',
dataType: 'html',
success: function (data, textStatus, jqXHR) {
alert(data); //data is html.
}
});
基本上,您必须创建一个HTTPHandler,将Foo.aspx输出封装到JSON evelope中。话虽如此,JS调用将指向url'/MyWebHandler?page=foo.aspx,而不仅仅是/foo.aspx。在处理程序中,您只需要查询页面并转储其输出。
我稍微改变了jbl重写Render方法的示例,这对我来说非常有效。我不需要HTML编码,只需要应用一些格式并包括内容类型
protected override void Render(HtmlTextWriter writer)
{
var sw = new System.IO.StringWriter();
var tw = new HtmlTextWriter(sw);
base.Render(tw);
var html = sw.ToString();
html = html.Replace("'n", " ");
html = html.Replace("'r", " ");
html = html.Replace("'t", " ");
var data = html.Replace("'"", "'''"");
data = data.Replace("/", "''/");
var json = String.Format("{{'"html'":'"{0}'"}}", data);
Response.ContentType = "application/json";
Response.Write(json);
Response.Flush();
Response.End();
}
相关文章:
- 如何使用javascript或html下载PDF格式的填写表单
- PHP:显示sqlite数据库中的html格式数据,使用tinymce保存
- JavaScript生成html格式的密码
- 在HTML页面上将URL解析为可读的json格式
- 如何在angularjs中实现html格式的字符串
- 如何在不创建格式错误的HTML标记的情况下分解字符串
- 如何重写Javascript If语句以选择Classes而不是ID's的HTML格式
- 如何使用JQUERY解析大型XML文件并将其可视化为HTML格式
- JavaScript-HTML表单到JSON(空值)和格式
- HTML表的JSON格式
- HTML文本框,它接受电话号码,并以美国电话号码格式显示
- 如何将HTML表单(JSON格式)中的数据分配给变量
- 正则表达式,用于从html格式的字符串中提取文本
- 表单中的CSS、HTML格式
- 如何使用javascript在html中查找日期时间格式
- 更改html标记或其子标记(而不是其属性)文本中的日期格式
- 如何将PHP变量从Blade格式HTML传递给JavaScript函数
- jQuery AJAX 格式 - HTML PHP 表单格式在加载后自动更改
- Rails 格式.html在 ajax 调用上呈现部分返回奇怪的结果
- 格式html表与交替行着色显示json数据