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

Ken*_*enn 0 c# asp.net-mvc razor

所以我创建了一个在MVC 4中测试DI的项目.是的,这很容易.我有一个看起来像这样的控制器.

public class CompanyManagementController : Controller
{
     private ICompanyService companyService;

     public CompanyManagementController(ICompanyService companyService)
     {
         this.companyService = companyService;
     }

     public ActionResult Index()
     {
         return View(companyService.GetCurrentCompanies());
     }
}
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚的是如何告诉视图Index.cshtml我有这个List我将返回它.当我只有一个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");
}
Run Code Online (Sandbox Code Playgroud)

这很简单,因为我刚才说

@model MvcInventoryManager.Models.Company
Run Code Online (Sandbox Code Playgroud)

在Create.cshtml文件中.

任何提示?我想要做的是能够遍历返回的公司列表.

谢谢!

Dav*_*vid 5

什么是返回类型companyService.GetCurrentCompanies()?这将是您要用于绑定Model视图的类型.例如,如果类型IEnumerable<Company>在您的视图中,您将声明:

@model IEnumerable<MvcInventoryManager.Models.Company>
Run Code Online (Sandbox Code Playgroud)

这样,Model属性的类型将匹配传递给视图的内容,您可以遍历Model:

foreach (var company in Model)
Run Code Online (Sandbox Code Playgroud)