我的视图如何知道使用 MVC 返回的数据类型
本文关键字:MVC 返回 数据类型 视图 何知道 我的 | 更新日期: 2023-09-27 18:37:02
所以我创建了一个项目来在MVC 4中测试DI。是的,这是容易的部分。我有一个看起来像这样的控制器。
public class CompanyManagementController : Controller
{
private ICompanyService companyService;
public CompanyManagementController(ICompanyService companyService)
{
this.companyService = companyService;
}
public ActionResult Index()
{
return View(companyService.GetCurrentCompanies());
}
}
我无法弄清楚的是,如何告诉视图 Index.cshtml 我有这个列表,我要返回它。当我只有一个 POCO 时,这很容易。我做到了
[HttpGet]
public ActionResult Create()
{
var company = new Company();
return View(company);
}
[HttpPost]
public ActionResult Create(Company company)
{
using(var context = new InventoryContext())
{
context.Companies.Add(company);
context.SaveChanges();
}
return View("Create");
}
这非常容易,因为我只是说
@model MvcInventoryManager.Models.Company
在 Create.cshtml 文件中。
有什么提示吗?我想做的是能够循环浏览返回的公司列表。
谢谢!
companyService.GetCurrentCompanies()
的返回类型是什么? 这将是您要用于在视图中绑定Model
的类型。 例如,如果类型是IEnumerable<Company>
则在您的视图中,您将声明以下内容:
@model IEnumerable<MvcInventoryManager.Models.Company>
这样,Model
属性的类型将与传递给视图的内容匹配,您可以遍历Model
:
foreach (var company in Model)
在视图中声明模型后,只需像这样循环访问它:
@foreach (var company in Model)
{
Html.DisplayFor(modelItem => company.companyID)
Html.DisplayFor(modelItem => company.CompanyName)
}