テキスト ボックスのデータをコントローラーのアクション パラメーターに渡すのに問題があります。
URLを次のように取得しようとしています:
http://localhost:51124/gifts?searchTerm=test
しかし、テキスト ボックスにテキストを入力すると、次のような URL が表示されます。
http://localhost:51124/gifts
ルートのコードは次のとおりです。
routes.MapRoute("Gifts",
"gifts",
new { controller = "Gifts", action = "Search" });
テキスト ボックス データを送信するためのテキスト ボックスとボタンを含むページのコードを次に示します。
<form method="GET">
<input type="search" name="searchTerm"/>
<input type="button" value="Search By Category" onclick="location.href='@Url.Action("Search", "Gifts")'" />
</form>
データを渡そうとして失敗したコントローラーのコードは次のとおりです。
public ActionResult Search(string searchTerm = null)
{
var model = db.Gifts.ToList();
return View(model);
}
「searchTerm」は、テキスト ボックスに渡すパラメーターを取得しません。常にヌルです。