我有一个实体 SecurityroleTypePermision 存储三个 ID 值:-
- 安全角色ID
- 资产类型 ID
- 权限级别ID
我正在我的 asp.net mvc Web 应用程序中处理应该填充数据库表的安全矩阵。
我的观点如下: -
model TMS.ViewModels.SecurityRoleGroupAssign
@using (Html.BeginForm("Assign","SecurityRole")) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<table class="table table-striped table-bordered bootstrap-datatable datatable">
<thead><tr>
<th></th>
@foreach(var item in Model.PermisionLevel.OrderByDescending(a=>a.PermisionSize)){
<th>
@item.Name @Html.HiddenFor(model => item.PermisionLevelID)
</th>}
</tr>
@foreach (var item2 in Model.TechnologyType.OrderBy(a=>a.Name)) {
<tr>
<td class="f">
@item2.Name
</td>
@foreach (var item3 in Model.PermisionLevel.OrderByDescending(a=>a.PermisionSize))
{
<td class="f">
@Html.RadioButtonFor(model => item2.AssetTypeID,item2.AssetTypeID.ToString())
@Html.HiddenFor(model => item3.PermisionLevelID,item3.PermisionLevelID)
</td>}
</tr>}
@Html.HiddenFor(model => model.SecurityRole.SecurityRoleID)
</table></div></div></div>
<p><input type="submit" value="Save" />
</p>
我的行动方法是:-
[HttpPost]
public ActionResult Assign(IList<SecurityroleTypePermision> list)
{ foreach (var c in list)
{ repository.InsertOrUpdateSecurityroleTypePermisions(c);
}
repository.Save();
return RedirectToAction("Index");}
目前我面临以下问题:-
- 如果我提交表单,我将在我的分配操作方法中收到以下错误:-
System.NullReferenceException 未被用户代码处理
所有单选按钮将位于同一组内,因此用户只能为每个表选择一个单选按钮。相反,我需要用户能够为每个表格行选择一个单选按钮。
谢谢
::::::编辑:::::::
ViewModel 是:-
public class SecurityRoleGroupAssign
{
public IEnumerable<TechnologyType> TechnologyType {get; set;}
public IEnumerable<PermisionLevel> PermisionLevel {get; set;}
public SecurityRole SecurityRole { get; set; }
}
数据库的一部分是:-