使用Ajax.dll前台调用后台方法及错误示例

 

使用AJAX前台调用后台的步骤:

1.首先在项目中添加Ajax.dll引用

2.在后台Page_Load函数体内加入 

Ajax.Utility.RegisterTypeForAjax(typeof(ClassName));//其中ClassName是后台类的类名

3.在前台所要调用的后台函数体之前加

[Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.ReadWrite)]

4.在Web.config文件中的<system.web> </system.web>内加入

 <httpHandlers>
        <add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>
   </httpHandlers>

 

 

关于用AJAX技术前台调用后台函数的错误

 
前台错误代码示例:
<script type="text/javascript">
        find();   
        function find() {
            var a = _Default.test().value;
            alert(a);
        }
</script>

<script type="text/javascript">
       ar a = _Default.test().value;
       alert(a);
</script>
火狐报错:“错误: _Default is not defined”

这个问题的产生估计与ASP.NET页面加载顺序有关。具体原因还不清楚,有待仔细研究

正确代码:
<script type="text/javascript">
        $(function () {//别忘引用JQuery
            find();
        });
        function find() {
            var a = _Default.test().value;
            alert(a);
        }
</script>

<script type="text/javascript">
        function find() {
            var a = _Default.test().value;
            alert(a);
        }
</script>

 <input id="Button1" type="button" value="button" onclick="find()"/>


除此之外,如果网站名用中文命名,对话框中的内容会为“null”。而在火狐中没问题。因为IE的URL中的汉字经过编码处理,而火狐则无

 

 

你可能感兴趣的:(Ajax)