如何在视图中访问ViewData属性?

时间:2009-01-17 00:49:25

标签: asp.net-mvc

我正在构建我的第一个基于ASP.Net MVC的应用程序,并且在我的一个视图中访问linq to sql查询的结果时遇到了问题。

这是我的控制器:

    public ActionResult Details(int id)
    {
        var dataContext = new BuffetSuppliersDBDataContext();
        var supplier = from m in dataContext.BO_Suppliers
                        where m.SupplierID == id
                        select m;

        return View(supplier);
    }

如何在我的视图页面中访问supplier.SupplierName属性,我已经看到使用foreach循环并将ViewData.Model强制转换为IEnumerable的示例,但使用循环没有多大意义,因为我只返回一行。

1 个答案:

答案 0 :(得分:3)

选择第一个对象,然后将其用作模型。强类型视图(.e.g。,ViewPage< Supplier>)将使访问模型属性变得微不足道。

    var dataContext = new BuffetSuppliersDBDataContext();
    var supplier = (from m in dataContext.BO_Suppliers
                    where m.SupplierID == id
                    select m).FirstOrDefault();

    ViewData.Model = supplier;

    return View();

将视图页面定义为

    public class Details : ViewPage<Supplier>
    {
    }

并在视图中使用

    <label for="SupplierName" class='details-label'>Supplier Name:</label>
    <span class='details-data'> <%= ViewData.Model.Name %> </span>