2

似乎我能找到的所有示例都出于某种原因使用 ViewModel,所以我正在寻找 MVC 而不是 MVVM 答案:)

控制器

List<PermOptions> have = new List<PermOptions>();
List<PermOptions> nothave = new List<PermOptions>();

...populate the lists here...

var set = new PermissionSet
        {
            ExtId = extid,
            HaveList = have,
            NotHaveList = nothave
        };

return View(set);

看法

@model path.to.model.PermissionSet
@{
    var NotHave = new MultiSelectList(Model.NotHaveList, "Id", "Role");
 }

@Html.ListBoxFor(model => model.NotHaveList, NotHave, new { @size = "30", id = "possible" });    

@{
    var Have = new MultiSelectList(@Model.HaveList, "Id", "Role");
 }

 @Html.ListBoxFor(model => model.HaveList, Have, new { @size = "30", id = "have" });

一切工作正常,显示初始列表和移动项目,但是当我提交表单时,ListBoxFors 是 Post 操作的一部分,PermissionSet.HaveList 和 PermissionSet.NotHaveList 是空的,计数为零。认为这是一个选择问题或返回问题的格式,我添加了 javascript 来选择两个框中的所有项目,并且在浏览器调试窗格中,我可以看到提交的表单数据中有与各种选项值匹配的值NotHave 和 Have,但如果在 Post 操作中,我调用 ViewData["NotHave"],它也报告为空。

我需要做什么才能在我的 Post 控制器中获取每个 ListBoxFor 中的项目列表,最好作为 PermissionSet 的一部分?

4

0 回答 0