【发布时间】:2016-05-03 04:18:08
【问题描述】:
目前我正在使用 ViewData 和 Viewbag 来存储数据和用于重定向的临时数据都工作正常。
我只是想知道在 MVC 中回发期间是否有任何优化方式来存储数据或控制值?
这是我的控制器方法,我将两个模型类从控制器传递到使用动态对象的视图。
[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);
}
这是我使用动态对象的剃刀视图:
@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 将调用 .
现在我想要两件事:
- 不想再次将客户类与数据库绑定 - 因为我正在使用 tempdata。
- 我必须使用 PagedList 维护分页。
我的问题还是一样,我应该使用 tempdata 来存储数据还是有任何其他优化方法可以做到这一点。
【问题讨论】:
-
尝试将其绑定到
model.. -
你的意思是使用模型类从数据库中获取数据?
-
一次从数据库中获取它或通过表单从客户端接受它。它将在
postback上出现。这就是model的工作原理。在不知道您要达到的目标或代码外观的情况下,我们无法在此处给出确切的建议.. -
@vinodsaini 你需要提交一些代码。这是一个有效的问题,但您需要展示一些东西才能得到回答。征求建议不会给你答案。这个问题之前在 SO 上已经被问过很多次了。我提供了一个简单的答案。
标签: asp.net asp.net-mvc asp.net-mvc-4 razor