博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET AJAX(Atlas)现存的一些常见问题以及解决方案[持续更新]
阅读量:5098 次
发布时间:2019-06-13

本文共 1456 字,大约阅读时间需要 4 分钟。

根据这一周的用户反馈来讲,ASP.NET AJAX(Atlas)从CTP到Beta 1,不能说是一个“进步”,当然也不能说是“退步”。作为一个变化如此巨大的新版本,ASP.NET AJAX似乎有些不够稳定,本文将列举出一些开发者社区中常见的问题以及相应的解决方案,并将不断更新,希望对各位朋友有所帮助。
以下两条来自微软公司的总监Shawn Burke的Blog( )。
从客户端调用Web Method时发生[Method Error 12031]或[Method Error 500]异常
若要从客户端调用某个服务器端Web Service中的Web Method,则该Web Service必须拥有
Microsoft.Web.Script.Services.ScriptServiceAttribute属性:
None.gif
[Microsoft.Web.Script.Services.ScriptService()]
ExpandedBlockStart.gifContractedBlock.gif
public
 
class
 MyService : System.Web.Services.WebService 
dot.gif
{
InBlock.gif 
// dot.gif
ExpandedBlockEnd.gif
}
若要从客户端调用某个定义与页面中的Page Method,则该Page Method必须用
Microsoft.Web.Script.Services.ScriptMethodAttribute属性修饰(当然,
System.Web.Services.WebMethod也是必不可少的),且
必须为静态(static)方法。目前版本的一个Bug还导致我们
必须在ASPX文件中定义这个Web Method,在CS文件中定义是没有作用的(真是无奈):
None.gif
<
script 
runat
="server"
>
None.gif[System.Web.Services.WebMethod]
None.gif[Microsoft.Web.Script.Services.ScriptMethod]
None.gif    public static string GetHtml(string contextKey) {
None.gif        // dot.gif
None.gif    }
None.gif
</
script
>
在模板控件(例如Login)或者数据绑定控件(例如GridView)中,Extender Control(包括AJAX Control Toolkit)无法正常工作
原因在于,Beta 1中所有的客户端脚本统一由ScriptManager管理,而ScriptManager是在PreRender时期遍历页面中的控件并输出必要的客户端脚本,但模板中的内容通常也是在PreRender时才生成的,这样二者错失了沟通的机会,自然模版中的Extender Control所必须的客户端脚本将不会被发送至浏览器,也就最终导致了Extender Control无法在模板控件中使用。
解决方法就是在PreRender之前,例如Load事件中强制让页面生成模版控件或数据绑定控件的内容,这样在PreRender的时候ScriptManager就可以正确找到他们了:
None.gif
protected
 
void
 Page_Load(
object
 sender, EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif
{
InBlock.gif    GridView1.DataBind(); 
// 数据绑定控件用这个
InBlock.gif
InBlock.gif    
object o = Login1.Controls; // 模版控件用这个
ExpandedBlockEnd.gif
}

转载于:https://www.cnblogs.com/dflying/archive/2006/10/27/ASPNET_AJAX_Beta_1_FAQ.html

你可能感兴趣的文章
线程池(一)
查看>>
MySQL(三)- sql优化
查看>>
Redis入门指南(一)
查看>>
Redis入门指南(二)
查看>>
Redis入门指南(三)
查看>>
zookeeper
查看>>
LinkedList源码分析
查看>>
集合比较
查看>>
HashMap源码分析
查看>>
同步容器
查看>>
ConcurrentHashMap
查看>>
同步-synchronize、volatile、原子类型
查看>>
锁的种类
查看>>
ThreadPoolExecutor 源码分析
查看>>
消息队列
查看>>
并发包中的类
查看>>
并发包中的类(二)
查看>>
dva中的一些备忘
查看>>
从零开始搭建react应用
查看>>
一些备忘
查看>>