c# - 在 Asp.net MVC 中处理具有强类型 View 的复选框

标签 c# asp.net-mvc

使用 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/

相关文章:

c# - 在 WPF 中播放 Gif

c# - 如何避免在 linq 中加载特定列

c# - 我的 ViewData 如何可以为空,但可以在调试器中扩展?

c# - 将安全问题转移到数据访问层

asp.net-mvc - MVC @Url.Abs 助手似乎不存在

c# - Unity3D - 检测 Windows 10 周年纪念日(版本号)

c# - 维护对结构的引用或重构此代码的其他方式?

c# - ASP.NET MVC 3 - 在 View 中处理模型的最佳实践

asp.net-mvc - ASP.NET MVC Html.RadioButton 异常

c# - 如何使 WCF session 更安全?