2012-03-02 6 views
0

첫 번째, 내 나쁜 영어에 미안 해요 :).목록으로 한 개체를 표시하는 방법

내 개체에는 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; } 
     } 
    } 
} 

내가 데이터베이스에 복구됩니다 사용자 이름 및 역할, 나는 하나 개의 목록 에서 CONTROLER 역할을 넣어 후 :

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); 
    } 

내보기 :

을3210

드롭 다운 목록에 표시 할 오류가 하나 있는데 해결책을 찾지 못했습니다.

감사합니다, Zoners

+0

내 견해로는 @model IEnumerable 및 @ Html.DropDownList ("roles", utilisateur.Roles)입니다. 당신의 도움을 주셔서 대단히 감사합니다 – Zoners

답변

1

는이

@Html.DropDownList("roles", Model.Roles)

또한

다음과 같이 강력한 형식의 DropDownList로 불리는 당신의 ViewModel 역할

public string Role{ get; set; }에 다른 문자열 속성을 추가하고 사용할 수있는 시도

@Html.DropDownListFor(model=>model.Role, Model.Roles)

관련 문제