代码之家  ›  专栏  ›  技术社区  ›  P. Pogba

Dotnetnuke-如何使用Ajax在代码隐藏中调用方法

  •  0
  • P. Pogba  · 技术社区  · 8 年前

    <script type="text/jscript">
    function ajaxcall(e) {
        $.ajax({
            type: "POST",
            url: "/DesktopModules/Modules/Admin/City/AddCity.ascx/GetMethod",
            contentType: "application/json; charset=utf-8",
            data: JSON.stringify({ value: "Vinay" }),
            dataType: "json",
            success: function (value) {
                alert(value.d);
            },
            error: function () { alert("Ajax Error"); }
        });
    };
    

    这是代码隐藏:

        [WebMethod]
        public static string GetMethod(String value)
        {
            return value;
        }
    

    当我从按钮调用函数时。它显示js警报 Ajax Error

    <input type="button" id="button" value="Test" onclick="ajaxcall()" />
    

    /DesktopModules/Modules/Admin/City/AddCity.ascx/GetMethod 通过 AddCity.ascx/GetMethod 但它仍然不起作用!

    1 回复  |  直到 8 年前
        1
  •  1
  •   Fix It Scotty    8 年前

    public class CityHandler : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            var fn = context.Request.QueryString["action"];
            var newCity = context.Request.QueryString["city"];
    
            if (fn == "add")
            {
                // TODO: add city
            }
            context.Response.ContentType = "text/plain";
            context.Response.Write("OK");
        }
    
        public bool IsReusable
        {
            get { return false; }
        }
    }
    

    然后更改ajax代码:

    $.ajax({
        type: "GET",
        url: "/DesktopModules/Modules/Admin/City/CityHandler.ashx?action=add&city=Vinay",
        success: function (value) {
            alert(value);
        },
        error: function () { alert("Ajax Error"); }
    });