Ale*_*lex 5 c# asp.net asp.net-mvc html-helper
我上课了RoomType:
Int32 Id
String Name
String ColorCode
Run Code Online (Sandbox Code Playgroud)
我的viewmodel得到一个List<Roomtype> RoomTypes应该在下拉列表中显示的内容.
每个下拉选项都应该具有:1)作为标题Name,2)作为值Id,以及3)样式背景颜色#ColorCode.
我的问题是如何正确地将此列表转换List<SelectListItem>为ASP.NET MVC的DropDownFor帮助程序所需的,然后为每个选项插入正确的值.
我试图在我的viewmodel中有一个新的readonly属性,它有一个RoomtypeSelectList返回的getter ,new SelectList(RoomTypeList)但是我无法显示正确的属性(Name,Id,Background color).
我很欣赏一些正确方向的帮助或指示......
在视图中尝试这样的事情
<%=Html.DropDownList("userList", new SelectList((IEnumerable)ViewData["RoomTypes"], "Value", "Text",selectedValue)) %>
Run Code Online (Sandbox Code Playgroud)
在你的控制器动作中你有
List<SelectListItem> roomTypesSelect = new List<SelectListItem>();
IList roomTypes = RoomTypeManager.GetAllRoomTypes();
RoomTypes currentRoomType = RoomTypeManager.GetCurrentRoomType();
bool isSelected = false;
foreach (RoomTypes roomTypes in roomTypes)
{
if (currentRoomType.Id == roomTypes.Id)
isSelected = true;
else
isSelected = false;
roomTypes.Add(new SelectListItem { Text = roomTypes.Name + " " +roomTypes.ColourCode, Value = roomTypes.Id, Selected = isSelected });
}
ViewData["RoomTypes"] = roomTypes;
Run Code Online (Sandbox Code Playgroud)
内置的 html 帮助器方法不允许您为选择列表项生成样式或标题属性。
如果要添加这些属性,则需要创建自己的 html 帮助器方法,或者仅使用<% foreach ... %>.
| 归档时间: |
|
| 查看次数: |
19622 次 |
| 最近记录: |