1

在遵循 Music Store 教程之后,我正在构建我的第一个 MVC 应用程序,并且在尝试在强类型视图之间传递数据时遇到了一些问题。

我有两种数据类型,它们有自己的强类型视图

客户 客户站点

在客户站点的索引视图中(返回一列客户站点),我需要在每个站点地址旁边显示客户名称,该视图是强类型到客户站点,但客户名称存储在客户表中,因此不会允许我从模型中直接访问这个吗?

我知道一种选择是使用 viewbag,我已经成功地使用以下代码在我的创建视图的下拉列表中显示客户名称

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

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

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

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

这工作正常,但现在我需要将客户名称插入每个表行而不是下拉列表。任何人都可以提供任何关于我如何检索要在客户网站索引视图中的表格中呈现的客户姓名列表的指针吗?

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

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

亲切的问候

利亚姆

4

1 回答 1

1

针对您问题的这一部分:

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

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

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

    public CustomerSite SomeCustomerSite { get; set; }
}

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

于 2011-05-05T12:58:18.240 回答