我来自 PHP 背景,所以我习惯于使用 PHP 文件来处理我所有的 ajax 调用。
最近向我介绍了 ASP.NET 控件和一般环境。
我想知道,当应该从 JavaScript 文件调用它们时,处理 ajax 请求的正确方法是什么?
此外,如果您有比 AJAX(使用 ASP.NET)更好的选择,我希望看到您的小型实现,如果可能的话,使用它。
谢谢!盖伊
我来自 PHP 背景,所以我习惯于使用 PHP 文件来处理我所有的 ajax 调用。
最近向我介绍了 ASP.NET 控件和一般环境。
我想知道,当应该从 JavaScript 文件调用它们时,处理 ajax 请求的正确方法是什么?
此外,如果您有比 AJAX(使用 ASP.NET)更好的选择,我希望看到您的小型实现,如果可能的话,使用它。
谢谢!盖伊
我已经看到了很多 ASP.NET 的 ajax 实现......但我认为最好的是我自己的......:D
只需像这样制作一个javascript函数:
<script type="text/javascript">
function callasync(url, id_contenedor) {
var ajax = false;
if (window.XMLHttpRequest) {
//Mozilla, Safari, etc
ajax = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
//IE
try {
ajax = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
//Versión antigua
try {
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {
}
}
}
else
return false;
if (id_contenedor != '') {
document.getElementById(id_contenedor).innerHTML = "<table width='100%' height='100%'><tr><td style='text-align: center; vertical-align: center;'><a class='LabelInfo'>Whait...</a><br /><img src='Imagenes/Esperar.gif' /></td></tr></table>";
}
ajax.onreadystatechange = function () {
pageload(ajax, id_contenedor);
}
ajax.open('GET', url, true);
ajax.send(null);
}
function pageload(ajax, id_contenedor) {
if (ajax.readyState == 4 && (ajax.status == 200 || window.location.href.indexOf("http") == -1))
if (id_contenedor != '') {
document.getElementById(id_contenedor).innerHTML = ajax.responseText;
ResizeCanvas();
}
}
</script>
然后使用 url 和 div 的 ID 调用函数“callasync”...
callasync('mypage.aspx?QS_KEY=123', 'divId');
在 ASP.NET 代码隐藏中... 像这样覆盖 Render 方法:
protected override void Render(HtmlTextWriter writer)
{
if (Request.QueryString["QS_KEY"] != null)
{
//render what you want.
}
else
{
base.Render(writer);
}
}