我的视图如何知道使用 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 文件中。

有什么提示吗?我想做的是能够循环浏览返回的公司列表。

谢谢!

我的视图如何知道使用 MVC 返回的数据类型

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) 
}