2009-01-17 75 views
2

我正在构建我的第一个基于ASP.Net MVC的应用程序,并且在我的某个视图中访问linq到sql查询的结果时出现问题。如何在我的视图中访问ViewData属性?

这里是我的控制器:

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的例子,但没有太多指向使用循环,因为我只返回一行。

回答

3

选择第一个对象,然后将其用作您的模型。强类型视图(例如,查看页面<供应商>)将使访问模型属性变得微不足道。

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

    ViewData.Model = supplier; 

    return View(); 

随着使用

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

你可以直接代替Model.Name的ViewData.Model.Name定义为

public class Details : ViewPage<Supplier> { } 

,并在视图中的视图页面,因为模型也ViewPage 的财产 – 2012-09-06 16:08:00