問題は、あなたがRequest.QueryString
コレクションを見ているということです。しかし、あなたはそうしているPOST
ので、query
値はRequest.Form
コレクションにあります。しかし、私のサンプルのように、TextBoxにデータを入力してほしいと思います。
サンプル
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
<input type="search" name="query" id="query" value="@Request.Form["query"]" />
}
しかし、これは実際のMVCアプローチではありません。そのためのViewModelを作成する必要があります。
モデル
namespace MyNameSpace.Models
{
public class SearchViewModel
{
public string Query { get; set; }
}
}
意見
@model MyNameSpace.Models.SearchViewModel
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
@Html.TextBoxFor(x => x.Query)
<input type="submit" />
}
コントローラ
public ActionResult Index()
{
return View(new SearchViewModel());
}
[HttpPost]
public ActionResult Index(SearchViewModel model)
{
// do your search
return View(model);
}