JQuery,ASCX和webmethods似乎不起作用

我有一个级联下拉列表(其中3个)类型,类别和子类别。 首先输入负载,然后选择类型,类别负载和类别,子类别负载的选择。 我还有2个按钮,“添加类别”和“添加子类别”点击这些按钮后,我调用一个JQuery模态表单来添加它们。 我在后面的代码中使用Webmethod将它们添加到数据库中

这在ASPX页面中完美运行。

由于我需要在3-4页中使用它,我想把上面作为用户控件(ASCX)。 当我尝试在网页中使用它时,ASCX中的web方法不会被调用。

我的方法是否正确? 应该为我的场景做些什么

向前推荐你的建议。

在此先感谢Karthik

我不认为你可以在ASCX控件中拥有WebMethod。 我为我的问题解决了这个问题:

AJAXBridge:

namespace Demo{ public partial class AjaxBridge : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } [WebMethod(EnableSession = true)] public static string Control_GetTest() { return Control.GetTest(); } }} 

Control.ascx.cs

 namespace Demo{ public partial class Control : System.Web.UI.UserControl { protected void Page_Load(object sender, EventArgs e) { HttpContext.Current.Session["test"] = DateTime.Now.ToString(); } // ALMOST A WEB METHOD public static string GetTest() { return " is " + HttpContext.Current.Session["test"]; } }} 

Control.ascx

  

所以你有一个ASPX,它基本上就像所有Web控件中所有AJAX方法的接口一样。 还有一些优点,例如对所有暴露的WebMethods进行概述和控制,这使得处理安全问题变得更加容易(例如,使用Annotations)。

您的Web方法是否在后面的代码中是静态方法,在您移动它之前, 在此处标记了WebMethod属性,如“在ASP.NET网页中调用静态方法”部分所述 如果是这样,这种类型的webmethod仅在页面级别工作,不能在usercontrol中使用。 有关替代方案,请阅读本页的前两部分。