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

时间:2012-06-13 03:50:20

标签: 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());
     }
}

我无法弄清楚的是如何告诉视图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");
}

这很简单,因为我刚才说过

@model MvcInventoryManager.Models.Company
Create.cshtml文件中的

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

谢谢!

2 个答案:

答案 0 :(得分:5)

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

@model IEnumerable<MvcInventoryManager.Models.Company>

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

foreach (var company in Model)

答案 1 :(得分:0)

在视图中声明模型之后,只需循环遍历它:

@foreach (var company in Model)
{ 
Html.DisplayFor(modelItem => company.companyID) 
Html.DisplayFor(modelItem => company.CompanyName) 
}