如何在MVC 3.0中的视图之间传递数据列表?

时间:2011-05-05 12:51:07

标签: asp.net-mvc views viewbag

我正在按照音乐商店教程构建我的第一个MVC应用程序,并且在尝试在强类型视图之间传递数据时遇到了一些问题。

我有两种具有强烈类型视图的数据类型

客户 客户网站

在客户站点的索引视图中(返回客户站点的lits)我需要在每个站点地址旁边显示客户名称,该视图强烈输入到客户站点,但客户名称存储在客户表中所以它不允许我从模型中访问这个直接的东西?

我知道有一个选项是使用viewbag,我已成功完成此操作,使用以下代码在我的创建视图的下拉列表中显示客户名称

客户现场控制器/////////

public ActionResult Create()
    {
        ViewBag.Id = new SelectList(db.Customers, "Id", "CustomerName");
        return View();
    } 

索引视图//////////

@Html.DropDownListFor(model => model.CustomerId,   (IEnumerable<SelectListItem>)ViewBag.Id)

这很好但现在我需要将客户名称插入每个表行而不是下拉列表。任何人都可以提供任何关于如何在客户站点的索引视图中检索要在表中呈现的客户名称列表的指示?

viewbag也是在视图之间传递数据的最佳方式,还是有其他替代方法?有没有办法强烈键入具有多种数据类型的视图?

任何人都可以提供任何建议都很棒。

亲切的问候

利安

1 个答案:

答案 0 :(得分:1)

回答你的这部分问题:

  

也是viewbag最好的方法   在视图之间传递数据或在那里   其他替代方法?有没有   强烈键入视图的方法   多种数据类型?

答案是肯定的。像这样创建一个新类:

public class SomeViewModel {
    public Customer SomeCustomer { get; set; }

    public CustomerSite SomeCustomerSite { get; set; }
}

将其传递到您的视图中,然后通过其模型访问这两种数据类型。