如何用列表显示一个对象
本文关键字:一个对象 列表显示 何用 | 更新日期: 2023-09-27 18:26:33
首先,对不起我的英语不好:)。
我的对象有一个String类型的变量和一个具有不同角色的selectListItem。我想在下拉列表中显示用户名和每个用户名的角色。。。
我的班级Modele用户:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
namespace ASP.Models.User
{
public class User
{
[Required(ErrorMessage = "User required")]
[Display(Name = "Username")]
public String Username { get; set; }
[Display(Name = "Roles")]
public IList<SelectListItem> roles = new List<SelectListItem>();
public IList<SelectListItem> Roles
{
get { return roles; }
set { roles = value; }
}
}
}
当人们在页面上连接时,我会在数据库中恢复用户名和角色,然后将角色放在一个列表中控制器:
public ActionResult Modify()
{
Connection connection = new Connection();
connection.creationConnexion();
DbDataReader reader = connection.getBDAllPseudoRole();
List<User> users=new List<User>();
User user = null; ;
if (reader.HasRows)
{
while (reader.Read())
{
Boolean flag = false;
foreach (User userTemp in users)
{
if (userTemp.UserName.Equals(Convert.ToString(reader[0])))
{
user = userTemp;
flag = true;
}
}
if(flag==false)
user = new user();
if (reader.GetValue(1) == DBNull.Value)//if first row equals null; we dont have the roles
{
user.UserName = Convert.ToString(reader[0]);
}
else
{
user.Username = Convert.ToString(reader[0]);
SelectListItem item = new SelectListItem();
item.Text = Convert.ToString(reader[1]);
item.Value = Convert.ToString(reader[1]);
user.Roles.Add(item);
}
user.Add(user);
}
}
return View(users);
}
我的观点:
@model ASP.Models.User
@{
ViewBag.Title = "Modify";
}
<h2>Modify</h2>
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset>
<legend>User</legend>
<div class="editor-label">
@Html.LabelFor(user => user.UserName)
</div>
<div class="editor-field">
@Html.EditorFor(user => user.UserName)
@Html.ValidationMessageFor(user => user.UserName)
</div>
<div class="editor-label">
@Html.DropDownList("roles", utilisateur => utilisateur.Roles)
</div>
<input type="submit" value="Connexion"/>
</fieldset>
}
我有一个错误要与下拉列表一起显示,我找不到解决方案。
谢谢,分区
尝试这个
@Html.DropDownList("roles", Model.Roles)
您还可以在视图模型中添加另一个名为Role 的字符串属性
public string Role{ get; set; }
,并使用如下所示的强类型DropDownList
@Html.DropDownListFor(model=>model.Role, Model.Roles)