Asp.net mvc 4 MVC CheckBoxList最后一个参数想要bool而不是collection
我需要将表单连接到单个模型或viewmodel,其中包含一个复选框列表。这些复选框对应于用户在数据库中拥有的权限列表。获取这些并不是问题所在,而是将它们与用户信息捆绑到一个模型中,我可以在表单上使用该模型,并且在发回控制器方法时可以使用该模型 我正在尝试使用MVC CheckBoxList助手,但有几件事让我绊倒了。 MVC复选框列表帮助程序:Asp.net mvc 4 MVC CheckBoxList最后一个参数想要bool而不是collection,asp.net-mvc-4,Asp.net Mvc 4,我需要将表单连接到单个模型或viewmodel,其中包含一个复选框列表。这些复选框对应于用户在数据库中拥有的权限列表。获取这些并不是问题所在,而是将它们与用户信息捆绑到一个模型中,我可以在表单上使用该模型,并且在发回控制器方法时可以使用该模型 我正在尝试使用MVC CheckBoxList助手,但有几件事让我绊倒了。 MVC复选框列表帮助程序: 示例代码使用以下内容: @Html.CheckBoxListFor(x => x.PostedCities.CityIDs, // check
示例代码使用以下内容:
@Html.CheckBoxListFor(x => x.PostedCities.CityIDs, // checkbox list name, 'PostedCities.CityIDs' in this case
x => x.AvailableCities, // List<City>()
x => x.Id, // City.Id
x => x.Name, // City.Name
x => x.SelectedCities) // List<City>() - should contain only cities to be selected
在我看来: @Html.CheckBoxListFor(model=>model.PostedPermissions.PermissionIDs,
model=>model.AvailablePermissions,
x=>x.Id,
x=>x.Name,
a => ???)
几个问题:第一个参数是复选框的名称?在这个例子中,它是一个数组
为什么不在ViewModel中使用字符串?
此外,我需要将与这些slections关联的当前用户id发送回控制器操作,如何将其包括在内?显示您的
PermissionCheckBoxInfo
类-它是否具有属性Id
和Name
,以及一个bool
属性来指示复选框是否被选中?您可以使用@Html.CheckBoxListFor(x=>x.PostedPermissions.PermissionId,x=>x.AvailablePermissions,x=>x.Id,x=>x.Name,a=>x.IsSelected)
。不清楚您的CheckBoxListName
属性的用途是什么,我不明白您在前两个问题中问了什么。如果您的controller POST方法接受PostedPermissions
,那么您需要为该类添加用户的属性。但是为当前用户,并在您的控制器已经知道该信息时将其发回?第一个问题-为什么要将复选框名称设置为数组的名称?等一分钟,我想我已经解决了-复选框或单选按钮列表通常使用相同的名称。第二个问题-我需要的不仅仅是操作方法中选定复选框的列表,因为我需要知道要为哪个用户设置权限。如果我在UserDetails属性中设置了权限,那么将其包括在内的好方法是什么?另外,他们在文档页面的“BaseExample”中做了什么(请参见上面的链接)他们使用x=>x.SelectedCities作为最后一个参数的位置?但您知道用户。提交表单时,只需获取当前用户的ID。没有理由将其包含在视图中
public class PermissionCheckBoxInfo
{
public string Name { get; set; }
public int Id { get; set; } // Integer value of a checkbox
public object Tags { get; set; } // Object of html tags to be applied to checkbox, e.g.: 'new { tagName = "tagValue" }'
public bool IsSelected { get; set; } // Boolean value to select a checkbox on the list
}
@Html.CheckBoxListFor(model=>model.PostedPermissions.PermissionIDs,
model=>model.AvailablePermissions,
x=>x.Id,
x=>x.Name,
a => ???)