私はmvcで新しく、テーブルとajax検索で簡単なページを作成しようとしています。検索パラメータを記憶する
たとえば、フォームからコントローラにパラメータを渡す検索モデルがあります。
モデル:コントローラで
public class OrderSearchViewModel
{
[Display(ResourceType = typeof(Lang), Name = "OrderID")]
public int? OrderID { get; set; }
[Display(ResourceType = typeof(Lang), Name = "DeliveryType")]
public int? DeliveryTypeID { get; set; }
[Display(ResourceType = typeof(Lang), Name = "Partner")]
public string CustomerName { get; set; }
public SelectList DeliveryTypes { get; set; }
}
私は、フォームとアクションの魔女リターン・ビューを持っている:私のIndex.cshtmlで
public ActionResult Index()
{
var ordersSearchModel = // default init;
return View(model);
}
私は、フォームの私には
@model Models.Order.OrderSearchViewModel
<div class="row">
@using (Ajax.BeginForm("Orders", "Order", new AjaxOptions {UpdateTargetId = "ordersList"}, new {@id = "searchForm", @class = "form-horizontal"}))
{
// Editors templates for each params
}
</div>
<div id="ordersList" class="row">
</div>
}
を持っていますコントローラ私は方法を持っている、魔女は検索モデルを取って、部分的なビューを返す
[HttpPost]
public async Task<ActionResult> Orders(OrderSearchViewModel model, int page = 1, int pageSize = 50)
{
var models = // connect to db and get data filtered by model params
return PartilaView("_View", models);
}
結果partialには、注文番号numのテーブルと編集ビューへのリンクがあります。 は、編集ビューでは、私は、検索するためのバックリンクを持っている:
@Html.ActionLink("Back", "Index", "Order", new { @class = "btn btn-default" })
をANDで、私は(検索パラメータなし)デフォルトのインデックスのビューを取得し、ユーザーが再びそれを埋める必要があり、このリンクをクリックしてください。 ユーザー検索パラメータを覚えておくのがベストプラクティスですか。 アドバイスありがとうございます。
あなただけの次の要求のために検索フィルタが必要な場合は、TempDataを使用することができます。 – jomsk1e
このような使用例では、クエリパラメータを使用する方が良いでしょう – devqon