• 关于ASP.NET MVC P5中CheckBox的HtmlHelper方法的bug。


        在ASP.NET MVC P5中,当你使用这样的方法输出CheckBox:<%=Html.CheckBox("checkTest")%>,在浏览器上除了你期望看到的代码外,还有一个name和CheckBox相同的hidden域。这就导致了一个问题:当这个表单被提交时,hidden(name="checkTest",value="true")和input:checkbox(name="checkTest",value="false")会同时被提交,并且hidden域是强制的,导致在服务器端Request中,你得到的Request.Form["checkTest"]将可能是这样的:"false,true"。 所以在P5中使用Html.CheckBox()的时候要注意到这个bug。解决的方法很简单:不要用他。

    但是如果你同时还希望用HtmlHelper偷懒的话,我这里提供了一个和P4中Html.Helper方法兼容的扩展,并且还比官方的方法更好——和label实现了绑定。

    其实没有什么难度,和别的HtmlHelper扩展是一样的。这里给出基本实现:

    Code

         如果有朋友仔细看过P5的源码,会发现这个问题可能不只在CheckBox中发生,而是被扩大到了input标签中。写这篇文章旨在请大家留意这个bug,并且完善自己的扩展方法。

    补充一下:

        关于上面代码中的var setHash = htmlAttributes.ToAttributeList();中,ToAttributeList()这个扩展方法,直接复制代码的朋友可能无法一次性通过编译,是因为这个方法存在于早先ASP.NET MVC版本的Toolkit中,现在似乎已经被删除了,但这个方法确实很实用,我把这个ToAttributeList()的代码也发上来:

    Code

    转载请注明出处和作者,谢谢!
    作者:JeffreySu / QQ:498977166
    博客:http://szw.cnblogs.com/

    Senparc官方教程《微信开发深度解析:微信公众号、小程序高效开发秘籍》,耗时2年精心打造的微信开发权威教程,点击这里,购买正版
    
微信开发深度解析:微信公众号、小程序高效开发秘籍

    Senparc 官方微信开发视频教程:《微信公众号+小程序快速开发》,点击这里点击观看
    Senparc 官方微信开发视频教程:《微信公众号+小程序快速开发》
  • 相关阅读:
    《免费:商业的未来》书摘
    wxWidgets的安装编译、相关配置、问题分析处理
    CodeBlocks的下载安装、配置、简单编程
    【最新】让快捷方式 实现相对路径——非.bat方式实现
    跨平台C/C++集成开发环境-Code::Blocks-内置GCC
    IOS自定义alertview
    IOS快速开发之常量定义
    为UITableViewController瘦身
    IOS中扩展机制Category和associative
    IOS制作一个漂亮的登录界面
  • 原文地址:https://www.cnblogs.com/szw/p/1305732.html
Copyright © 2020-2023  润新知