c# - JQuery、ASCX 和 webmethods 似乎不起作用

标签 c# jquery asp.net .net

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

这在 ASPX 页面中完美运行。

由于我需要在 3-4 页中使用它,所以我考虑将上面的内容制作为用户控件(ASCX)。当我尝试在网页中使用它时,ASCX 中的 webmethods 不会被调用。

我的方法正确吗?我的场景应该做什么

l期待您的建议。

提前致谢 卡西克

最佳答案

我认为 ASCX 控件中不能有 WebMethod。 我这样解决了我的问题:

AJAX桥:

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

<script type="text/javascript">    
var dataSend = {};

$.ajax({
    type: "POST",
    url: "AjaxBridge.aspx/Control_GetTest",
    data: dataSend,
    cache: false,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    beforeSend: function(data) {
        alert("before");
    },
    success: function(data) {
        alert("Page Load Time from Session " + data.d);
    },
    fail: function() {
        alert("fail");
    }
});    </script>

因此,您有一个 ASPX,其作用基本上类似于所有 Web 控件中所有 AJAX 方法的接口(interface)。还有一些优点,例如对所有公开的 WebMethods 进行概述和控制,这使得处理安全问题变得更加容易(例如使用注释)。

关于c# - JQuery、ASCX 和 webmethods 似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2704916/

相关文章:

asp.net - 取消 ASP.NET 回调处理

c# - 在派生类 C# 中引发基类事件

c# - 如何从 ASP.NET MVC 自定义 IdentityUser 模型获取用户配置文件数据?

c# - TabControl 上的图像对齐问题

jquery - 使用jquery多选框获取未选择的列表

c# - 如何在 C# 中使用反射来列出 .asmx 的方法

asp.net - .Net MVC线程长时间运行的过程

c# - 有什么方法可以用 ClrMD 获取局部变量的值(比如 sosex !mdv)?

javascript - 如何在不重新加载页面的情况下刷新 .one() 事件?

javascript - 如何在平板电脑和手机的 Android 设备方向更改时获得正确的窗口宽度