私は自分のページで多くの選択クエリを持っていて、それらに基づいていくつかのアクションリンクが別のデータタブを得ています。流れの上にスタック上Htmlの代わりにAjax ActionリンクMVCのアクションリンク
例我々は、ユーザーが任意の上でクリックした場合質問
概要はタグバッジなど
に答える見るユーザーのプロフィールを見ます1つは、アクション全体に当たるタブで、ページの他のすべてのセクションがデータベースにヒットし、ページの読み込み時間が長くなります。パフォーマンスを向上させるために、 jax、検索した後、私はこの例を得ました。
部分図。
@model IEnumerable<AJAX.Models.tblStudent>
<table>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Age)
</td>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
</tr>
}
</table>
<h2>Time is @DateTime.Now</h2>
コントローラ
public ActionResult Index()
{
return View();
}
public PartialViewResult Twenty()
{
var result = from r in db.tblStudents where r.Age == 20 select r;
return PartialView("_Country", result);
}
public PartialViewResult TwentyFive()
{
var result = db.tblStudents.Where(x => x.Age >= 25);
return PartialView("_Country", result);
}
インデックスビュー
@{
ViewBag.Title = "Home Page";
}
@Ajax.ActionLink("Age 20", "Twenty", new AjaxOptions
{
UpdateTargetId = "StudentList",
InsertionMode = InsertionMode.Replace,
HttpMethod = "GET"
})
@Ajax.ActionLink("Age 25", "TwentyFive", new AjaxOptions
{
UpdateTargetId = "StudentList",
InsertionMode = InsertionMode.Replace,
HttpMethod = "GET"
})
<div id="StudentList"></div>
<h2>Time is @DateTime.Now</h2>
@section scripts{
@Scripts.Render("~/Scripts/jquery.unobtrusive-ajax.min.js")
}
これは正常に動作し、クリックしたページは、ページの他のセクションを残して、データベースをヒットするかどうかをチェック交差する日時を追加しました。 MVCでAjaxを使用する正しい方法かどうかを知りたいですか? Ajax.ActionLinkのように。
注:this tutorialアプリケーションの状況に
リンクを参照してください。しかし、なぜあなたは年齢別にフィルタリングのための別の方法を持っていますか?これはパラメータ 'int Age'を持つメソッドの1つでなければならず、クエリ文字列値のルート値としてパラメータを渡します。 –
私はそれを指摘してくれてありがとうございます。 – Dave