0

タイトルにあるとおりです。I ビューからコントローラ メソッドを呼び出す最良の方法は何ですか。ViewBag、HTMLHelper ...?

4

3 に答える 3

0

それを ActionResult にするだけです。また、Ajax POST を使用している場合は、アクションを HttpPost 属性でマークする必要があります。これを試して:

[HttpPost]
public ActionResult test()
{
    return Content("It works");
}

view.cshtml に javascript タグを追加します。

// Sample Ajax Request.   
$.ajax({
           url: '@Url.Action("test", "Home")',
          data: {dealerID: dealerID},
          type: 'POST',
          success: function(data) {
            alert(data);
         }

});

ノート:

  • Url.Action にはコントローラー/アクション パラメーターがあります。最初に「ActionName」、次に「ControllerName」にする必要があります。
  • Url.Action の場合、コントローラー クラスが「HomeController」の場合、必要なのは「Home」だけです。
  • リクエストの成功がアラートを表示するときの JQuery オプション。-- 成功するはずです: function(data) {}.
于 2013-07-26T07:16:49.833 に答える
0
@Html.ActionLink("LinkText", "ActionName", "ControllerName")
于 2013-07-26T07:19:53.580 に答える
0

ユーザーがページを要求すると、Web ページは最初にルートを使用して適切なコントローラーを見つけます。次に、すべてのサーバーサイド C# コードを完成させます。次に、html テンプレートを埋めて、html をユーザーに送信します。サーバー上のビューからコントローラーを呼び出すことはできません。ただし、ビュー ページがクライアント ブラウザーで実行されている場合、サーバーに対して ajax 呼び出しを行い、データをコントローラーに送り返すことができます。

ここに例があります

http://www.codeproject.com/Articles/41828/JQuery-AJAX-with-ASP-NET-MVC

ブラウザーが実行する手順を絞り込みましょう。

  1. ユーザーリクエストページ

    /ホーム/索引

  2. ASP MVC サーバーは、要求をルートに送信します。デフォルト ルートは global.aspx ファイルにあります。
  3. ルーティング呼び出しの適切なコントローラー/アクション。
  4. アクションはサーバー コードを実行し、必要に応じてデータをビューに送信します。
  5. ビュー テンプレートが入力され、HTML/css/javascript がクライアントに送信されます。
  6. ブラウザでページをロードした後、またはユーザーがクリックした後、ajax リクエストをサーバーに送り返すことができます
于 2013-07-26T04:55:21.697 に答える