道歉,如果这是我缺少一些简单的东西,但无论如何它在这里。如果这更容易,我很乐意指出文章的方向等。
是否有帮助程序将显示给定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”是构成列表的类的成员。
如果没有,是否有其他推荐的方法来实现此功能。
答案 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助手