【发布时间】:2020-01-07 13:08:06
【问题描述】:
我正在尝试在 ASP.NET MVC 5 中创建一个简单的可滚动复选框列表。我有一个复选框可以工作,它正确地将正确的值回传到 model.Checked:
控制器
using System.Web.Mvc;
using Checkbox1.Models;
namespace Checkbox1.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new TestModel
{
Checked = true
};
return View(model);
}
[HttpPost]
public ActionResult Index(TestModel model)
{
return View(model);
}
}
}
查看
@model Checkbox1.Models.TestModel
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
@Html.CheckBoxFor(m => m.Checked, Model.Checked)
<input type="submit" value="submit" />
}
型号
namespace Checkbox1.Models
{
public class TestModel
{
public bool Checked { get; set; }
}
}
但是,当我使用 list 布尔值尝试相同的操作时,我无法将布尔值传递回控制器。看起来模型在被发布回控制器时被重新实例化并被取消:
控制器
using System.Collections.Generic;
using System.Web.Mvc;
using Checkbox2.Models;
namespace Checkbox2.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new TestModel()
{
lstChecked = new List<bool>()
};
model.lstChecked.Add(true);
return View(model);
}
[HttpPost]
public ActionResult Index(TestModel model)
{
return View(model);
}
}
}
查看
@model Checkbox2.Models.TestModel
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
@Html.CheckBoxFor(m => m.lstChecked[0], Model.lstChecked[0])
<input type="submit" value="submit" />
}
型号
using System.Collections.Generic;
using System.Web;
namespace Checkbox2.Models
{
public class TestModel
{
public List<bool> lstChecked;
}
}
我想知道为什么这不起作用,但如果您能指出一个简单的可滚动复选框列表的工作示例,我们将不胜感激!
【问题讨论】:
-
Html.CheckListBoxFor 可以工作吗?
-
我没有看到 Html.CheckListBoxFor 对象。
-
噢!你是对的,没有CheckListBoxFor 0_O
-
你会认为他们会有一个。或者可能是 ListBoxFor 中的一个选项,用于显示带有复选框的每个项目。我已经准备好使用 ListBoxFor 了,因为我已经开始工作了。我只是认为 CheckBox 比必须按住控制键进行多项选择要好。
标签: c# asp.net-mvc checkbox