您好我已经在asp .net mvc 4中包含了Grid.MVC我能够显示 网格中的复选框,但我如何知道特定的复选框是 因为我想将它发布到服务器并检查它,所以连续选择 在控制器端下面是代码的任何建议 欢迎,有什么办法可以放置标题的复选框
@Html.Grid(Model).Columns(columns =>
{
columns.Add().Encoded(false).Sanitized(false).SetWidth(10).RenderValueAs(o => Html.CheckBox("checked", false));
columns.Add().Encoded(false).Sanitized(false).Titled("Headline").SetWidth(220).RenderValueAs(news => @Html.ActionLink(news.HeadLine, "Details", new { Id = news.Id }));
columns.Add(news => news.Time).Titled("News Time").SetWidth(110).Sortable(true).Filterable(true);
}).WithPaging(20)
答案 0 :(得分:1)
将值属性添加到复选框,将其值设置为news.Id(如果news.Id是主键或唯一的其他设置一些值,您可以通过该值识别控制器中的已检查行)。 将name属性添加到复选框,并为所有复选框指定相同的名称。
Html.CheckBox("checked", false, new {name = "assignChkBx"})
在控制器中使用带有表单集合对象的操作来获取复选框值
public void Controls(FormCollection form)
您将只获取FormCollection中已检查的值。
var checkBox = form.GetValues("assignChkBx");
if (checkBox != null)
{
foreach (var id in checkBox)
{
}
}
答案 1 :(得分:1)
对于迟到的回复感到抱歉,但今天我发现自己有同样的问题。
以下代码可以根据需要使用:
columns.Add()
.Encoded(false)
.Sanitized(false)
.SetWidth(10)
.RenderValueAs(o => Html.CheckBox("checked", o.YourModelBoolProperty));
祝你好运。
答案 2 :(得分:0)
columns.Add().Titled("").Encoded(false).Sanitized(false).RenderValueAs(o => Html.CheckBox(string.Format("ArrayProperty[{0}].Selected", Model.ArrayProperty.IndexOf(o)), o.Selected));
适合我 - 比其他答案更清洁。出于某种原因,我无法将其他项目发布到工作中