두 개의 목록 상자에 데이터베이스의 데이터를 채워야합니다. 하지만 하나의보기에 두 개의 목록 상자를 표시해야하므로 ListBoxModel 클래스를 만들었습니다. ASP.NET mvc : 목록 상자에 채우기 (데이터 바인딩)
public class ListboxModel
{
public ListBox LB1 { get; set; }
public ListBox LB2 { get; set; }
}
그리고 내 컨트롤러에서
:public ActionResult IndexStudents(Docent docent, int lessonid, int classid)
{
var MyListBox = new ListboxModel
{
LB1 = new ListBox(docent.ReturnStudentsNormal(lessonid, classid),
LB2 = new ListBox(docent.ReturnStudentsNoClass(lessonid, classid)
};
return View(MyListBox);
}
그러나 작동하지 않습니다이 코드, 내가 어떻게리스트 박스에 데이터를 바인딩 할 수 있습니다? 그래서 두 개의 모델을 사용하고 싶습니다. 하나는 각 목록 상자, 하나는 일반 학생 및 하나는 수업에 가입하지 않은 학생입니다. 어떻게 할 수 있습니까? 내보기에 어떤 코드를 써야합니까? 같은 뭔가 :
<div class="editor-field">
<%: Html.ListBox("IndexStudentsNormal", Model.LB1) %>
<div class="editor-field">
<%: Html.ListBox("IndexStudentsNoClass", Model.LB2) %>
목록 상자는 이름, sirname, 클래스, 학생의 교사를 포함 할 수 있도록 여러 colums와 목록 상자되어야합니다.
학생은 개체입니다. student.Name, student.Sirname, student.Class 등을 그 목록 상자에 표시하고 싶습니다.
그래서 ListBox에서 개체를 사용할 수 있습니까, 아니면 모든 것을 문자열로 변환해야합니까?
어떻게하면됩니까?
미리 감사드립니다.
오케, 내 관점에서 첫 번째 줄을 변경했습니다. 이제는 내 방법을 인식합니다! 감사! 그러나 또 다른 문제가 나타납니다 : "Html.Listbox"에 잘못된 인수가 있습니다 ... IEnumerable에 IEnumerable 을 어떻게 캐스트 할 수 있습니까? ------------------------------------------------- 오류 인수 3 : 'System.Collections.Generic.IEnumerable '을 'System.Collections.Generic.IEnumerable '으로 변환 할 수 없습니다. –
Lorenzo
SelectListItems를 반환하는 메서드를 정의해야합니까? 예 : 공개 IEnumerable optionsList { get { // 코드 } } –
Lorenzo
흠, 여기에 의견을 추가 한 것 같습니다. 어쨌든, 나는 당신의 견해에 의해 사용될 SelectListItem의리스트를 정리하는 제안 된 방법으로 나의 대답을 업데이트했다. – Thorin