現在、リダイレクト用のデータと温度データを保存するためにViewDataとViewbagを使用していますが、すべて正常に動作しています。MVC4でポストバック中にコントロールの値を維持する最も良い方法は何ですか?
MVCでポストバック中にデータやコントロールの値を保存する最適な方法はありますか?
これは私のコントローラメソッドです。コントローラから動的オブジェクトを使用して表示する2つのモデルクラスを渡しています。呼ばれます
@using PagedList;
@using PagedList.Mvc;
@model dynamic
@{
Layout = null;
}
@using (Html.BeginForm("SearchMethod", "Dashboard", FormMethod.Post))
{
@foreach (Models.LCOddl item in Model.LCODDL)
{
// Render HTML
}
@foreach (Models.Customer item in Model._CustomerList)
{
// render html
}
<div class="form-group"><button type="submit" class="btn btn-success">Go</button></div>
}
ダッシュボードコントローラからの私のかみそりビューSearchMethodからボタンのクリック後:
[HttpGet]
public ActionResult Index(int? page)
{
IList<Customer> _CustomerList = new List<Customer>();
IList<LCOddl> LCODDL= new List<LCOddl>();
// some logic to bind both classed with database ..
dynamic DashboardClassed = new ExpandoObject();
DashboardClassed.LCODDL = LCODDL;
DashboardClassed.CUSTOMER = _CustomerList.ToPagedList(page ?? 1, 30);
return View(DashboardClassed);
}
はここに動的オブジェクトを使用して、私のかみそりの図です。
今ここで私は二つのことをしたい:
- は、データベースと再び顧客クラスをバインドしたくない - そのために私はTempDataをを使用しています。
- 私はPagedListを使用してページングを維持する必要があります。
もう一度私の質問は同じですが、私はデータを格納するためにtempdataを使用するか、同じように他の最適化方法があります。
「モデル」にバインドしてください。 –
あなたはモデルクラスを使用してデータベースからデータを取得することを意味しますか? –
データベースから一度だけ取得するか、クライアントからフォームを受け取ります。それは 'ポストバック'にあります。それが 'モデル'の仕組みです。あなたが達成しようとしていることやコードの外観を知らなくても、ここでは正確な提案はできません。 –