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

そのクラスを呼び出して代わりに[DirectMethod]使用するコードの背後 にあるApp.direct.<Method>();

于 2013-07-18T09:16:17.347 に答える
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 に答える