以下代码运行正常: (在Controller [Visual Basic]中): 昏暗的DivUsers(16)
For Each did In Divisions
Dim perm = Perms(did)
DivUsers(did) = From u In db.VEAUsers Where u.Permission = perm
Next
(在视图[HTML / RAZOR]中):
@For Each u In ViewBag.DivUsers(did)
@<option value="@u.UserId">@u.FirstName @u.LastName</option>
cnt = cnt + 1
Next
但是我被要求使用ViewData而不是ViewBag(因为有EXPLICIT / STRICT OPTION)。
我不确定如何在ViewBag中记录ViewData中的各个记录。也就是说,如何使用ViewData而不是ViewBag重写这行HTML / RAZOR代码?
@For Each u In ViewBag.DivUsers(did)
由于
答案 0 :(得分:0)
ViewData是一个字典,所以你想把模型放到你应该写的控制器中的ViewData
:
ViewData["Users"] = model;
然后在View上你可以获得这样的值:
@For Each u In ViewData["Users"].DivUsers(did)
@<option value="@u.UserId">@u.FirstName @u.LastName</option>
cnt = cnt + 1
Next
但最佳做法是使用ViewData.Model
和强类型视图。
ViewData.Model = model;
然后查看:
@For Each u In ViewData.Model.DivUsers(did)
@<option value="@u.UserId">@u.FirstName @u.LastName</option>
cnt = cnt + 1
Next
但您应该在顶部
指定视图的模型@model YourModelClass