【发布时间】:2014-05-12 19:09:37
【问题描述】:
所以下拉列表具有价值/文本。该值是我存储在数据库中的值(因为它是列出要在下拉列表中显示的值/文本的表的主键)。当我填充下拉列表时,我使用值/文本。当用户选择时,它将值(数字)存储到事务表中。这意味着当我将它读回我的模型时,我得到的是数值而不是文本。但是,在选择 24 小时后,我只需要显示文本,因为它们无法进行更改。问题是它显示的是值 (1, 2, 3, 4) 而不是对人类更有意义的实际文本。
有没有办法在视图级别进行转换?我问的原因是因为我的模板分支并充当显示模板和编辑器模板,因为这是页面所需的功能。所以我很容易通过以下方式在编辑器模板部分中显示选定的值:
@Html.DropDownListFor(modelItem => item.RecordType, new SelectList(Model.RecordTypes, "RECORD_TYPE_ID", "RECORD_TYPE", item.RecordType)
但显示部分有:
@Html.DisplayFor(modelItem => item.RecordType)
这给了我价值数字而不是文本。我真的必须在我的视图模型中创建另一个字段并根据记录填充文本和值吗?正如您从 DropDownListFor() 中看到的那样,我有一个存储值/文本的 RecordTypes 列表,所以我可以使用该值来查找文本并通过 DisplayFor() 或其他函数从模板视图中显示它吗?
【问题讨论】:
-
我能做到。对这种风格不感兴趣,因为它不能编辑,只显示文本是理想的。
标签: c# asp.net-mvc