AJAX出現未定義錯誤與兩種提交方式

前幾天做到一個AJAX實現,一直使用的代碼突然報“XX未定義”的錯誤,在網上找了找發現幾種解決方法也不合適。

自己在BIN文件夾裏引用的是AjaxPro.2.dll

web.config文件裏配置的寫法如下:

 

 <httpHandlers>

      <add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>

 </httpHandlers>

而且後臺在Page_Load方法裏也把此頁面註冊了:

 AjaxPro.Utility.RegisterTypeForAjax(typeof(Event_Report));

  方法如下:

     [AjaxPro.AjaxMethod]

    public string SubSbr(string sbr, string event_id, string eventTypeId)

    {

        string info = "0";

        try

        {

            AcdReport.xxx(event_id, sbr, "", "", eventTypeId);

        }

        catch (Exception)

        {

            info = "-1";

        }

        return info;

     }

前臺頁面的<%Page%>裏,定義也沒有出錯:

 CodeFile="Event_Report.aspx.cs"

 Inherits="Event_Report"

在JS方法裏引用如下:

  function subName(id,type)

    {

      var sbr=document.getElementById("SBR").value;

      var info = Event_Report.SubSbr(sbr,id,type).value;

 }

但就是一直報X

-----------------------------------------------------------------------------------------------------------------

同事說提供了一種新的方法,就是自定義加一個路徑:

 在後臺頁面最上面加一個路徑:

  using System.Web.UI.WebControls;

  using System.Web.UI.WebControls.WebParts;

  using System.Text;

 

  [AjaxPro.AjaxNamespace("Test")]

然後在前臺JS方法裏引用的方法換成此路徑的:

 

      var info = Test.SubSbr(sbr,id,type).value;

後來還是報未定義錯誤。。!!!!!!!!!!!!!!!!!!!!

找了半天,無意中嘗試一下:

因爲JS方法的參數是在後臺拼代碼生成的,可能考慮到參數的問題,

因爲在JS方法體裏,引用參數的時候,加了一個轉化如下:

 var info = Test.SubSbr(sbr,id.toString(),type.toString()).value;

後來就成功了。。。。。。。。。。。。。。。。。。。。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章