asp.net - 我可以在 mvc 控制器中执行多个 sql server 查询并在 MVC 应用程序的单个视图中显示结果吗
问题描述
现在我有一个控制器,它执行单个查询并将其显示在视图中。我想执行另一个查询,根据过滤器获取记录数。我可以在同一个视图中执行此操作吗?
这是我当前的控制器类:
public class AutoController : Controller
{
// GET: Auto
public ActionResult Index(int? page)
{
var entities = new ticketsEntities();
int pageNumber = (page ?? 1);
return View(entities.Tickets.OrderByDescending(Tickets=>Tickets.TicketCreation).ToList().ToPagedList(page ?? 1, 5));
}
}
解决方案
有2种方法:
- 使用 ViewBag
///////
//In controller
ViewBag["Total"] = entities.Tickets.Count();
//In View
<p>@ViewBag["Total"]</p>
- 使用自定义视图模型
是的,您可以创建一个新的模型类,填充它并将其传递给视图。
例如
public class MyCustomModel
{
public IPagedList<Tickets> Tickets {get;set;}
public long Total {get;set;}
}
在控制器中:
MyCustomModel mymodel = new MyCustomModel();
mymodel.Total = entities.Tickets.Count();
mymodel.Tickets = entities.Tickets.OrderByDescending(Tickets=>Tickets.TicketCreation).ToList().ToPagedList(page ?? 1, 5)
return View(mymodel);
然后在您的视图中,您可以将模型设置为:
@model MyCustomModel
<p>Model.Total</p>
推荐阅读
- regex - ngx-chips (Angular) 的粘贴分割模式
- karate - 空手道并行运行场景大纲/示例时如何保存每个响应
- php - 自定义 Slim Not Found 处理程序取决于路线
- google-cloud-firestore - 我应该使用哪种 Firestore 数据模型策略?
- android - 使用 Espresso 运行 UI 测试,如何在 Material Design 芯片布局中引用关闭图标?
- database - 从同一张桌子上的两个不同点自动递增?
- javascript - 如何将列表中的网站交替加载到浏览器
- git - 将 repo 从 bitbucket 移至 github,但随后意外将最新更改推送到 bitbucket 而不是 github - 现在如何更新 github?
- sql - Elasticsearch 运行聚合查询 - 仅购买该产品的客户购买的产品
- javascript - 调用依赖注入并调用模块内的方法/函数