1

我在下面的类中有一个方法:

public class ActionHelper
{
    [DirectMethod]
    public string DeleteComment()
    {
        ...
        return "Delete";
    }
}

我想从网格命令中调用它,如下所示:

<Command Handler="Ext.net.DirectMethod.request({url: '/Classes/ActionHelper/DeleteComment', cleanRequest: true}});" />

但它不工作!我怎样才能做到这一点???我使用 ext.net 2.2 和 .netframework 4.5

4

3 回答 3

1

您不能,您要么在页面、用户控件或任何自定义控件中定义方法,要么在页面类中定义静态方法。

这是Ext.net 论坛中帖子中定义直接方法的引用:

  • DirectMethod(非静态,必须是公共的):当您调用特殊的 javascript 方法时会引发服务器端处理程序(基本上,代理方法是由 Ext.Net 工具包生成的)。没有静态直接方法可以在页面、用户控件或任何自定义控件中定义。请注意,如果直接方法在用户控件(母版页占位符也是用户控件)或自定义控件中定义,则该控件的 ClientID 将添加到代理方法 1 Ext.net.DirectMethods.ClientIDOfTheControl.DirectMethodName(); 您可以使用类的 DirectMethodProxyID 属性来定义自己的别名或完全删除 ClientID 前缀真的,没有一个静态直接方法是直接事件。单差,

  • 静态 DirectMethod(必须是公共的):类似 ASP.NET PageMethods,只能在 Page 类内部定义。使用静态页面方法,不执行页面生命周期,因此无法访问 ASP.NET 控件,但响应时间要好得多(仅取决于您的方法逻辑)

于 2013-07-20T22:19:31.457 回答
1

在您的代码中放入一个[DirectMethod]调用该类的代码并 App.direct.<Method>();改为使用

于 2013-07-18T09:16:17.347 回答
1

看看这个例子 http://examples.ext.net/#/Events/DirectMethods/ID_Mode/

这可能会有所帮助

于 2013-07-17T07:58:24.867 回答