C# MVC3查找列表html帮助程序

C# MVC3查找列表html帮助程序,c#,asp.net-mvc-3,razor,C#,Asp.net Mvc 3,Razor,道歉,如果这是我错过了一些简单的东西,但在这里它无论如何。我很乐意指出文章等的方向,如果这更容易的话 是否有一个助手可以显示给定ID的列表中的值 我想要的是能够在Razor中执行以下操作: @Html.LookedUpValueFor(model => model.id, Lists.SelectList1) 在上面的示例中,我希望Lists.SelectList1是一个静态SelectList,其中SelectList的“Value”列中有一个“id” 目标是使其显示“名称”而不是“I

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

是否有一个助手可以显示给定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”是构成列表的类上的成员


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

因此我认为您只想显示名称而不是下拉列表

如果是这种情况,那么您可能应该使用自定义的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帮助程序中,正如您所建议的那样,

,但万一其他人不知道。。。DisplayTemplates需要进入“视图\共享”或“视图\”。这是一个非常简洁且可重复使用的解决方案。甚至允许[UIHint(“LookupList”)]作为装饰。。。勾选所有的盒子!