2011-08-12 10 views
1

HttpPostを動作させるにはどうすればよいですか?MVC 3 [HttpPost]

私は自分のフォームを受信するために、次のアクションを書いたと思います:

[Authorize] 
    [HttpPost] 
    public ActionResult TextAction() 
    { 
     ViewBag.Title = "POST"; 
     return View(); 
    } 

    [Authorize] 
    public ActionResult TextAction(string title) 
    { 
     ViewBag.Title = "GET"; 
     return View(); 
    } 

フォーム:

@using (Html.BeginForm("TextAction", "Admin", FormMethod.Post)){...} 

うーん...それは最初のアクションビューで「POST」を書くことになりました。 ...それじゃない?

「GET」のみにリダイレクトされるのはなぜですか?

お願いします!

+0

フォームはどのように提出していますか?フォームに、サーバーにポストバックされている入力がありますか? – RoccoC5

+0

GETとPOSTについて読んでみることをお勧めします。明らかに混乱しているからです。そうでなければあなたの質問で混乱しています。 – RPM1984

答えて

1

"最初のアクションビュー"とは、ユーザーが最初に閲覧したときに "http://www.mysite.com/Admin/TextAction"と表示された場合を意味します。アドレス欄に何かを入力してEnterキーを押すか、通常の<a>リンクをクリックすると、GETが常に使用されます。

投稿アクションを開始する最も一般的な方法は、属性がPOSTに設定されているフォームの送信ボタンをクリックさせることです。

0

まあ...最初のアクションビューに「POST」と書かれていたのですが...そうではありませんでしたか?

上記で指摘したように、私は、HTTPプロトコルがどのように動作するかについてのあなたの前提に問題があると思います。おそらくそれを少し読んでみることをお勧めします。読んでいるだけでなく、FireBugのようなものを使用し、「ネット」タブの下にチェックを入れてみるとよいでしょう。 GETとPOSTは、発生した時点で表示されます。

0

あなたが提示するフォームを要求しているときは、サーバーからデータを取得していますが、フォームを入力してサーバーに送信すると、データがPOSTされます。したがって、あなたがフォームを提出しなかった場合は、あなたのケースでGETと言うのが普通です。フォームを送信すると、ブラウザはPOSTメソッドを開始し、ポスト・バージョンのアクションが呼び出されます。

関連する問題