2011-11-22 53 views
0

我有一个列表。根据查找列表更改值的最快方法

ViewBag.Meters = db.Query("SELECT * FROM Meters"); 

而一个Id

3 

我如何得到ViewBag.Meters,其中Id = 3

尽量简单,让我的视图代码整洁Meters.Name

(我的观点目前仅显示foriegn键(IDS),而不是它的实际名称)

+1

什么数据类型是'db'?你使用EF/LINQ吗?什么数据类型是'ViewBag.Meters'? – mellamokb

+0

请发表您的看法。 – Maess

+0

目前我的视图只是使用@ Html.DisplayForModel()。不知道它的设置viewbag.meters如何动态设置它的动态。数据库是'使用WebMatrix.Data;'''数据库'类型 – Doomsknight

回答

1

如果我想你在做什么,我会创建一个简单的utils的功能,如

public static string GetMeterNameById(int MeterId) 
{ 
    return db.FirstOrDefault<Meter>("WHERE Id = @0", MeterId).Name; 
} 

然后里面的观点只是放置一个使用在utils的类的命名空间,然后调用函数

Utils.GetMeterNameById(Model.Id) 

我有一个enourmous实用工具类,需要在一个干净的方式返回数据时提供各种灵活性。希望这可以像我相信的那样高效。

没有更多的细节,我很难判断这是否适合您的应用程序,详细阐述更多,我很乐意提供帮助。

+0

这是一个好主意。我没有意识到你可以在控制器中使用这种方法。我去了并创建了两个方法/模型,其中一个提供了id,另一个提供了名称。 – Doomsknight

+0

是的,我通常创建许多不同的类,允许我通过实用程序功能即时与数据库进行交互。我发现它可以让将来的代码更容易处理,并且可以与正确的命名约定结合使用。 – jhartzell

0
((IEnumerable<Meter>)ViewBag.Meters).Where(meter => meter.Id == 3).First().Name 

但我不会做,在视图中。该代码属于视图模型(你应该创建)

相关问题