MVC3查找列表html帮助器

时间:2011-12-08 01:03:08

标签: c# asp.net-mvc-3 razor

道歉,如果这是我缺少一些简单的东西,但无论如何它在这里。如果这更容易,我很乐意指出文章的方向等。

是否有帮助程序将显示给定ID的列表中的值。

我正在寻找的是能够在Razor中执行以下操作:

@Html.LookedUpValueFor(model => model.id, Lists.SelectList1)

在上面的例子中,我希望Lists.SelectList1是一个静态SelectList,其中SelectList的“Value”列中有一个“id”。

目标是使其显示“名称”而不是“ID”。我可以手动做到这一点我敢肯定,但我认为MVC应该有办法轻松实现我的目标。

理想情况下,我希望将我创建的ViewModel中的成员归因于它的“LookupList”是一个特殊的东西。

[LookupList(Lists.SelectList1, "id")]

甚至更好

[LookupList(Lists.StandardList, "id")]

其中“id”是构成列表的类的成员。

如果没有,是否有其他推荐的方法来实现此功能。

1 个答案:

答案 0 :(得分:1)

所以我认为你只想显示名称而不是下拉列表?

如果是这种情况,那么您应该使用自定义的DisplayTemplate,因此您可以调用:

@Html.DisplayFor(model => model.id, "LookupList")

其中'LookupList'是在名为DisplayTemplates的子文件夹(MVC命名约定)中定义的显示模板的名称。

此显示模板类似于:

@model int
@using System.Linq

@Lists.SelectList1.Single(s => s.Value == Model.ToString()).Text

你的观点不应该有这个逻辑,所以这应该是你建议的单独的html助手