【发布时间】:2015-06-15 21:37:39
【问题描述】:
我遇到了一个问题,我在视图中呈现的所有复选框都被选中。我在构建视图模型的行放置了一个断点,通过调试器,我可以看到一些值设置为“true”,而其他值设置为“false”。所以问题,我假设,必须在视图本身。
这是我的模型:
public class UserModulesAdministrationViewModel
{
public bool AccessGranted { get; set; }
public int ModuleId { get; set; }
public string ModuleName { get; set; }
public string ModuleDescription { get; set; }
}
这是呈现列表的控制器:
public ActionResult UserModules(int id)
{
// Database stuff here
var model = modules.Select(module => new Infrastructure.ViewModels.UserModulesAdministrationViewModel
{
ModuleId = module.AccessModuleId,
AccessGranted = userModules.Any(z => z.AccessModuleId == module.AccessModuleId),
ModuleName = module.ModuleName,
ModuleDescription = module.ModuleDescription
}).ToList();
return View(model);
}
最后是我的相关视图代码:
@model IEnumerable<UserModulesAdministrationViewModel>
@foreach (UserModulesAdministrationViewModel m in Model)
{
<div class="col-md-4" style="margin-top: 15px;">
<div class="moduleBlockLong" style="position: relative">
<div class="moduleHeader">@m.ModuleName</div>
<div class="moduleText">@m.ModuleDescription</div>
<div class="checkbox" style="position: absolute; bottom: 0; right: 80px">
<label>
@{
var m1 = m;
}
@Html.CheckBoxFor(z => m1.AccessGranted )
<input type="checkbox" value="" checked="checked"/> Allow Access
</label>
</div>
</div>
</div>
}
【问题讨论】:
-
只是确保,这是两个单独的复选框,您说的是前者,而不是后者?
@Html.CheckBoxFor(z => m1.AccessGranted ) <input type="checkbox" value="" checked="checked"/> -
@AmmarCSE - 我是个白痴。我忘了删除
<input type="checkbox">行。呃。做出回答,我会接受的。 -
嘿,你不是曾经因为代码中的逗号错位而花费数小时解决错误的人!我们都去过那里! :) 但是,嘿,如果任何问题仍然存在,请告诉我,以便我尝试提供帮助
标签: c# asp.net asp.net-mvc asp.net-mvc-4 razor