我试图摆脱我的代码对 System.Web.Mvc
的依赖,因为我已将我的模型提取到一个单独的 .dll(在 MVC 项目之外),以便它可以在许多项目之间共享。
我正在尝试创建一个“自定义 SelectListItem
”,它只是一个 class
具有 string Text
的两个属性和 string Value
看起来像:
public class DropDownListItem
{
public string Text { get; set; }
public string Value { get; set; }
}
但是,我试图找到一种方法将此对象传递到 DropDownListFor
中在我看来。无论如何要操纵它以便我可以做类似的事情:
@Html.DropDownListFor(x => x.Value, Model.Values, new { @class="form-control" })
在哪里Models.Values
类型为 List<DropDownListItem>
.
最佳答案
您不需要创建 DropDownListItem 类 - 相反,您可以创建自己的 POCO(Plain-Old-C#-Object)来包含列表选项:
例如,假设您有以下类(class):
class MyClass
{
public int Id {get; set; }
public string name {get; set; }
}
要拥有包含 MyClass 列表的 dropDownlist,您可以简单地使用:
@Html.DropDownListFor(model => model.Entity.Id, new SelectList(MyClass, "Id", "Name"))
id 表示选择的值,name 将是显示在 DropDownList 中的文本。
希望这对您有所帮助!
关于c# - 自定义选择列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25795959/