私がする必要があるのは、部分的なビューで結果を表示する簡単な検索ページを作成することです。検索テキストボックスと検索送信ボタンがあります。オンラインで見つけたチュートリアルに従って、実装が非常に簡単で迅速に思えますが、ここに何かが欠けています。検索ボタンをクリックしても何も起こりません。私が間違っていることや行方不明になっていることについてのアイデアは大歓迎です。
メインのレイアウトページに次のスクリプトファイルを含めます
@Script("jquery-1.5.1.min.js")
@Script("modernizr-1.7.min.js")
@Script("jquery-ui.min.js")
@Script("jquery.unobtrusive-ajax.js")
@Script("jquery.validate.min.js")
@Script("jquery.validate.unobtrusive.min.js")
@helper Script(string scriptName)
{
<script src="@Url.Content("~/Scripts/" + scriptName)" type="text/javascript"> </script>
}
メインの検索ビューはAdminMenuと呼ばれます。これは、私のプロジェクトのAdminというエリアの下に表示されます。
私のメインビューの次のコード
@using (Ajax.BeginForm("AdminSearch", "AdminMenu", new {area = "Admin"}, new AjaxOptions { HttpMethod = "GET", InsertionMode = InsertionMode.Replace, UpdateTargetId = "searchResults"}))
{
<input type="text" name="q" />
<input type="submit" value="Search"/>
}
<div id="searchResults">
</div>
部分ビューのコード_adminSearch
<div id="searchResults">
<div class="entitybox">
@{
var grid = new WebGrid(
Model,
defaultSort: "Name", canPage: false
);
}
@grid.GetHtml(
tableStyle: "_tableGrid",
columns: grid.Columns
(
grid.Column("Name", "Name", item => @Html.ActionLink((string)item.Name, "SelectRecord", new { controller = "Menu", agencyKey = item.Id, name = item.Name }))
)
)
</div>
</div>
コントローラーのコード
public class AdminMenuController : Controller
{
public ActionResult AdminMenu()
{
return View();
}
public PartialViewResult AdminSearch(string q)
{
Records results = AgencyBusiness.GetAdminSearch(q);
return PartialView("_adminSearch", results);
}
}
検索ボタンをクリックしても何も起こりません。コントローラクラスのAdminSearchメソッドにブレークポイントを設定すると、ヒットすることはありません。
よろしくお願いします。