1

私は mvc は初めてですが、webform の経験は豊富です。jquery で任意のページ メソッドを呼び出す場合、ページ メソッドは静的である必要があり、asp.net Web フォームに webmethod 属性が必要です。方法。したがって、jqueryが外部からコントローラーメソッドを呼び出す方法を知る必要があります。これをグーグルで検索しましたが、この問題についての議論は見つかりませんでした。深い知識を持っている人は、これについて詳しく議論してください。ありがとう

4

1 に答える 1

0

これは、ASP.Net-MVC Web ページを同期的に要求するのと同じです。同期要求と非同期要求に対して本質的に同じ方法で応答します。

あなたが持っているので、それはうまくいきます:

  • コントローラーメソッドの戻り値の型を、またはそれを継承する任意の型として定義しActionResultます。ViewResultJsonResult

  • メソッドの戻り値がこれと同じ型であることを確認しました (もちろん -- そうしないと、コンパイル時エラーが発生します!) 例:

        return View(myModel);  //View() returns a ViewResult obejct.
    
  • System.Web.Mvc.Controller クラスから継承するオブジェクト内にこのメソッドを配置しました。

  • 要求の URL に一致する Global.asax のルートをマップし、指定されたコントローラーとアクションにルーティングします

ActionResult は、パブリック メソッド シグネチャを 1 つだけ定義します。

public abstract void ExecuteResult(ControllerContext context);

フレームワークは、ActionResult の各バリアントの具体的なバージョンを定義します。しかし、ExecuteResult() の内部動作を知る必要はありません。

MVC フレームワークはすべての調整を行いますが、デフォルト (規則) を再構成するための多くのエントリ ポイントを提供します。ControllerContext をセットアップし、ExecuteResult() を呼び出し、すべてのデフォルトの HTTP ヘッダー (必要に応じてコントローラー内から変更できます) を作成します。

于 2012-08-08T14:54:11.970 に答える