가 여기 내 모델입니다MVC VB.NET SelectListItem/DropDownListFor를 구축하는 동적
Function populateList()
'this is hardcoded at present, because I haven't been able to
'dynamically add to this IEnumerable. The implication is, I need a
'code change every time I add a new subject to my app ...
Dim model = New subjectListModel With {
.activities = {
New SelectListItem() With {.Value = activityList(0), .Text = activityList(0)},
New SelectListItem() With {.Value = activityList(1), .Text = activityList(1)},
New SelectListItem() With {.Value = activityList(2), .Text = activityList(2)},
New SelectListItem() With {.Value = activityList(3), .Text = activityList(3)},
New SelectListItem() With {.Value = activityList(4), .Text = activityList(4)},
New SelectListItem() With {.Value = activityList(5), .Text = activityList(5)},
New SelectListItem() With {.Value = activityList(6), .Text = activityList(6)},
New SelectListItem() With {.Value = activityList(7), .Text = activityList(7)},
New SelectListItem() With {.Value = activityList(8), .Text = activityList(8)},
New SelectListItem() With {.Value = activityList(9), .Text = activityList(9)}
}
}
Return View(model)
End Function
이 : 여기
@Html.DropDownListFor(Function(x) x.selectedActivity, Model.activities, New With {.onchange = "this.form.submit();"})
그리고 나의 컨트롤러 잘 작동하고 내 옵션의 처음 10 개를 포함하는 드롭 다운 목록을 표시합니다. 나는 내가 보여주고 싶은 것보다 더 많은 것을 가지고있다. 내 문자열 배열에서 항목을 동적으로 추가 한 다음 IEnumerable로 변환하려고 시도하여 목록을 작성하는 방법을 살펴 보았습니다. 지금 내가 원하는 것을 수행하는 것으로 보이는 C# 코드를 보면서 시간을 보냈지 만, 수많은 시도에도 불구하고 VB에서이 작업을 수행 할 수 없었습니다. 문제의 큰 부분은 내가이 물건을 정말로 이해하지 못한다는 것이다. 어떤 도움을 주시면 감사하겠습니다! 그때는 IEnumerable이 변환하려고 떨어진했다
Dim dropDown = New List(Of SelectListItem)
For j = 0 To 100
dropDown.Add(New SelectListItem With {.Text = activityList(j), .Value = activityList(j)})
Next j
:
이
내가 루프를 작성하려고 한 가지 방법입니다.이
내가 루프를 작성하려고하는 또 다른 방법입니다 :Dim model = New subjectListModel
For j = 0 To 100
model.activities(New SelectListItem With {.Text = activityList(j), .Value = activityList(j)})
Next j
"너무 많은 인수"(Dim dropDown = New List(Of SelectListItem)
에 할당)
루프를 사용하여 컬렉션을 반복하고 새'SeelctListItem'을 추가하지 않는 이유는 무엇입니까? 또는 더 나은 여전히 linq'.Select (x => new SelectListItem (...})'? –
감사합니다. 루프를 만들려는 시도 중 하나를 보여주기 위해 질문을 업데이트했습니다. 만약 당신이 컬렉션을 반복하는 방법을 보여줄 수만 있다면 ... – IanB
죄송합니다, 당신의 요구를 명확하지 않습니다. 이미 IEnumerable''List '을 만들었습니다 - 이미 IEnumerable_으로 변환하지 않아도됩니다. –