フォームからコントローラアクションにデータを送信できません。 HTML.BeginForm()を使用してフォームを作成しましたが、手動でクエリ文字列を作成するとうまく動作するコントローラがありますが、コントローラアクションでフォームを動作させる方法がわかりません。フォームデータをコントローラアクションに正しく投稿するにはどうすればよいですか?
<form class="navbar-form navbar-left">
<div class="form-group>
@using (Html.BeginForm("GeneralSearch", "Search", FormMethod.Post))
{
@Html.TextBox("searchString")
<button type="submit" class="default">Submit</button>
}
</div>
</form>
そして、私のコントローラで私は現在、ASP.NETが自動的にそこに置かれHttpGet
属性を持っています。しかし、それをHttpPost
に変更しても問題は解決しません。単にデフォルトのコントローラ、代わりに私が指定した「検索」のコントローラのアクションをロード
http://localhost:64562/?searchString=test
:私はテキストを入力して、フォームを送信
[HttpGet]
public ActionResult GeneralSearch(string searchString)
{
return View("SearchResult", viewModel);
}
、ネットワーク要求がに送信されますusing
ステートメント特定のアクションに正しく投稿するにはどうすればよいですか?
見ている必要があります。バインディングを動作させるには 'name =" searchString "で入力が必要です。また、フォームアクションはPostですが、あなたのアクションは '[HttpGet]'とマークされています。 GETパラメーターは、要求本体で渡された照会ストリングとPOSTパラメーターを介して渡されます。 – Jasen
Textboxメソッドで与えられた名前がHTMLで使用されている名前ではありませんか? – user9993
@ user9993 - オンラインチュートリアルを完了したり、読んだりするのが最善でしょう。 [MVCのビューからコントローラへのデータの取得](http://www.c-sharpcorner.com/UploadFile/3d39b4/getting-data-from-view-to-controller-in-mvc/)のようなものです。別の方法は、間違いでそれを苦労して遭遇することです。 – Igor