У меня есть приложение mvc 3 vb.net, для которого мне нужно сгенерировать несколько пакетов просмотра ... Я попробовал следующий код, чтобы просто отбрасывать переменную в конце имени пакета просмотра после каждого цикла, но он не будет работать ..Он говорит: «Переменная объекта или переменная блока не установлена».когда это вторая строка viewbag.status (p) на втором проходе, она проходит через цикл ...
Dim p As Integer = 0
For Each registrant In b
Dim _regi As attendance = registrant
Dim _status As New List(Of String)
If Not String.IsNullOrWhiteSpace(_regi.Completed_Class) Then
_status.Add(_regi.Completed_Class)
End If
_status.Add("--")
_status.Add("Absent")
_status.Add("Left Early")
_status.Add("Completed")
ViewBag._status(p) = _status
p = p + 1
Next
И вид выглядит так:
@ModelTYPE List(Of xxxxxx.attendance)
@Code
ViewData("Title") = "Class Attendance Record"
End Code
@Using Html.BeginForm
@<fieldset>
<table>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Registrant ID</th>
<th>Course Status</th>
<th>Comments</th>
</tr>
@For r As Integer = 0 To Model.Count - 1
Dim i As Integer = r
@Html.HiddenFor(Function(m) m(i).id)
@Html.HiddenFor(Function(m) m(i).course_ref)
@<tr>
<td>@Html.DisplayFor(Function(m) m(i).firstName)
@Html.HiddenFor(Function(m) m(i).firstName)
</td>
<td>@Html.DisplayFor(Function(m) m(i).lastName)
@Html.HiddenFor(Function(m) m(i).lastName)
</td>
<td>@Html.DisplayFor(Function(m) m(i).reg_id)
@Html.HiddenFor(Function(m) m(i).reg_id)
</td>
<td>@Html.DropDownListFor(Function(m) m(i).Completed_Class, New SelectList(ViewBag._status(i)))
@Html.HiddenFor(Function(m) m(i).Completed_Class)
</td>
<td>@Html.TextBoxFor(Function(m) m(i).Comments, New With {.class = "AttenComment"})
@Html.HiddenFor(Function(m) m(i).Comments)
</td>
</tr>
Next
</table>
<p><input type="submit" name="submit" /></p>
</fieldset>
End Using
Любые идеи???