使用 asp.net MVC 和强类型 View 处理复选框的正确方法是什么。我有一个类“Bar”,其中有一个成员“foo”。 'foo' 是类型 'byte'。
现在我想做的是在 Controller 中有这样的东西:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Page( Bar bar )
{
if (ModelState.IsValid)
{
SaveChanges(bar);
...
View 中类似这样
<%=Html.CheckBox( "foo", Model.foo) %>
当然,上面的代码不起作用,因为 DefaultModelBinder(?) 不知道如何将 Checkbox 的输出(讨论 here )转换为字节,因此 ModelState.IsValid 为 false。
如何让它发挥作用?定制模型绑定(bind)器?如何?似乎是一个简单的问题,但我未能找到如何做到这一点的全面指南。 (是的,我知道我不擅长谷歌搜索:-)
最佳答案
在您的模型中 - 将 Byte 转换为 Bool 属性。您仍然可以将其作为字节存储在数据库中。只需让 get/set 使用 bool 并在那里进行转换即可。
关于c# - 在 Asp.net MVC 中处理具有强类型 View 的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/746593/