回到目录

说在前

我都是喜欢把问题复杂化,还有总是喜欢把问题简单化,偷懒化,这也需就是一个程序员的追求吧,呵呵。

我不太喜欢重复的东西,当你看到页面上有一个以上相同的代码时,那可以说,你的代码有重构的余地,应该考虑重构了,今天看了以前同事的博客,写了关于DropDownList的用法,如何将集合数据绑定到下拉列表框上,讲的不错,但最后在说checkbox和radiobutton时,我感觉有点重复了,我说的是代码重复了,还有就是代码复杂化了,就是说,我再使用集合来产生checkbox和radiobutton时,代码有些复杂了,这不是我们希望看到的,所以,我觉得有必要把它重构一下,为mvc加两个扩展方法吧,呵呵。

做在后

DropDownListFor的方法签名做的不错,很面向对象,很简洁,但不知不何,checkbox和radiobutton确没有这样的重载,呵呵

        public static MvcHtmlString DropDownListFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, IEnumerable<SelectListItem> selectList);
public static MvcHtmlString DropDownListFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, IEnumerable<SelectListItem> selectList, IDictionary<string, object> htmlAttributes);
public static MvcHtmlString DropDownListFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, IEnumerable<SelectListItem> selectList, object htmlAttributes);
public static MvcHtmlString DropDownListFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, IEnumerable<SelectListItem> selectList, string optionLabel);
public static MvcHtmlString DropDownListFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, IEnumerable<SelectListItem> selectList, string optionLabel, IDictionary<string, object> htmlAttributes);
public static MvcHtmlString DropDownListFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, IEnumerable<SelectListItem> selectList, string optionLabel, object htmlAttributes);

对于checkbox和radiobutton它们只有简单的几个重载,没有对集合的支持,所以,我的这次代码扩展,主要是针对集合来说的,看方法签名:

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkAAAABzCAIAAAD/iSpLAAAgAElEQVR4nO2dfZhrVX3vU2yt4sUHCvUNX4pKi1Dk+AKW6+1VKlhKLVq0Vu9ztMoFvRyolatAKaI8QqkeC4h9KuAIVMFCGbWsZCZnMpnMJHPyNklOkpkkZ5JMkjPJ5GX25KfPOfUOf/jPuX+sl73Wfkl2Mplh5vD7PjwkZ2fttVcyc/I5v9/67d/XdRyFQqFQqN2qk+V/pP/96le/2tzc/LXv0pNcrhd7bSgUCoVC9dGJEycQYCgUCoXae+oDsM38937tu5T+t5n/Hh7BI3gEj+ARPLIbjvQH2PHjxwGFQqFQqN2kX/sudRSBvdjrRKFQKBRKkSOA/dp3ad+JkuMHx/wrVn/YupLjBw/aTbjiHzs4nhzZpVAoFAq1RzQygAGs+MfG/CsUKTJt+HGA5PiYfyU5rqKIDV/xjx1UNOZfoeQ6ePDgwfEkHSjEmSVGGM7c2nX5zONJ+YkseTZ1gGlC48QoFAqF6qnV1dWclVZXV+VhjvbATABLjh8cT0qEsPzSlr6w6XgDbMaTMn/GxsYOjo2Pj5nP5nwQYNSB0QNfW7qu9LLfL58tJmcAs5jayG/gHxACDIVCoRwpl8s5OU4JNeAeGCMXxYN0wBT10Cf0q398fIx956vf5MnxgzwSMuDJwMWxMcOIFf/YuF8hg8yJLVyXP+d4ooeVkYJulqyyFAIMhUKhHMkhwAavQjQEHSJr2OMLe8U/NuZPmsaIBN3BgwcZifRwh7OETz2etESN+coSJ4a+rhyBJflllShKRGDWwZYU0iHAUCgUajA5BNgwVYimAKw3wOQyi+Q4DXoMJ46NjYkz1B0lK1w6BNgWrqtHYFKMZgDYQSm6M3w6pkAR4YVCoVDORUEVVgXDAUzeA7PY9ZGkpxDlQxwSDCkr/rHxJP8fzwyaAhe+VTU2Nma7B2Zez0Fj/nHo6wqAyeUeUgqRvWIq77BNISLFUCgUypFGGYGpRRzGCg7LUgoVbyv+McEhBS0AJjzoYtyxL+IwZ+sseDr4ddUUorigRQrRIoMo75/Rj0l+DygUCoXqq1HugSkAMycQwfSi6WCPr2+7cnZjPs+ijN6OnHIMNtR1LXmj3HHGKvOt6usNdwDQEBKjLxQKhXKq7axCtJcFwFgezgI2DkOSHmX0fU7b2nUNS5DOtN8AY5TTK0+kwwgxFAqFcqRR3geGvRBRKBQKtduEvRBRKBQKtSc1wlZSKBQKhULtnBBgKBQKhdqTGq4XIgqFQqFQL7JGXIWIQqFQKNTOaJRViLffcccBrtvvuGO7l45CoVCol7JGWYV44MCBp5566uTJk2trawcOHNjupaNQKBTqpazhizg2N1+g/4kjBw4cOHny5FVXXXXdddchwFAoFAq1rRoGYJubL/xCO/7UfYEbLn7oqfsCv9COU4wdOHDgwQcfPHnyZCAQQIChUCgUals1cBXi5uYLC96jt3/48Udvnzi23Hz09onbP/z4gvfo5uYLBw4cuO6666666qqTJ0+aAZa4+zwX1dmffm4VJm847X0PLg2w0tZjV579qeekNiLh217j4vrAv67anymp/v0PinNedc2TZccXXwzEV7tHZ6aX2vQAf16eP3SkaX9eLTa5sAqwliKHVzboIfm5rvL8VLrHPH3VLcwQLne4UokREq6IVzuFGdJn/s6id3Z53bT+6OSCo0+2FOJXnysOvPjeqkV9OW3Ic6tRvqzJRH2rCykFxUdMgsVagpBgSbyoFYPE2/saG/lpf75jPFpPuCPVLn+uX8GXbeSnxfPWVhfP5veIa21JlQghxBOtdotzfL2hUv/TtqbinPo5aDnfTMH0eVqqEqaLtBi/uuCJ1np+JsuzvsUWAEAz7Q6V2a9iM+1Oranj1nNTM4UOwHpuihDiW2zJ44fQajywOJqf+ymswaoQNzdfePiW52+78odH5koihXhkrnTblT98+JbnDxw4sLa2dvLkyaefftoAsMp3L3f90Xcr0pGRAOzCb9A2809de8a1P3YySf37H/zdz/x84K+ytZQ73YTdDDAAkCFUixFCBHq0cohsO8BGsP7RqxodAbhk6RCqJwghkSo73q1G3FsHGAAAVCPeZB0AQMtPz+Q7ANDKTExk2yNY/cgABlrON5PvmKGynRoWYBuVcA+QDAkwC3GAAawueGK1br/xfWUBSZRBg1Uhbm6+cMPFD/3TZ58xAOyfPvvMDRc/ZFuFuBG8dd8nnqkpF5684bT33XvnB1wul8vFOAQA0wde4XK5XG//Ror+ufHIFS6Xy+X66FM6wH7+GdeZX54zAOwvx9hvcvyuN7tcLpfrv33kRysA4Pn8b/z3h3MApcf/7JUff8YSYD/bTyOyN98ysw4AsHzwXW+6dv/7fvPd38myEVp5fnZ53Qyw+qKXEELIRHwVOoveQHx+gkzEV8vzhJCp3Dr0AVh5nhBCZpfp86l0k45fihFxPh1PCHGnm/R5MD7nDld0AGrlkECMDLDJw/EAG9ctzKcXOWA6dM36HA06fzwuzo0SQgiNejjAWtlAb5DJAOsW/P5cG6CR9IYr0Ei6w0sJQgjxpFt0/slwfIaCRb4WNJJeEcFJz2scQhsFP4vx2DonE0tRq+hKKwXZERVg7ezEXFGTjjeS7sjSAiGECIi0sxOEECLP2K1GohxUMsDcofhskM4HpXBiKcIAtsEiJ/4atDMThBASjyvwIxOZNjgCGNQTE9l2NeINx/30tWpEjsxamYngUnKCEEKSDfYR0DVEq2yeeHhyJjDFosdCYW4yS6/tiVa73Uo4YARrPRHoCSZrgNUTnij9PBkUKmEvXRGHTXHOF4tOERIq1Rbk9dJIjkZxdIwv21pn8R2bozjny2bpuLI8J8DqAiGEeBfVN7G6ECkDUIClGuor+ngdYMuz+txiTDzuJoQQcii1ZozAQmUNYJ2elVqj4wnxLbYowFaUqK+ZdtNx9PlcPEjIodTa8iwhZOZoF8Aq4lpdmN8KAF8KGqwKkQKs3eiOPxgSKcTxB0PtRveGix+SCzoURf5+31/8yNCJffKG0yiHIPClV7s+9zwAQPSOc6/9MUB76ov7Pvt8AwCe+pjrLV9L0BMowBKPXrHvmykAUFKIlz3Efuvy33on5VDjkSvO2f+zOgA88/GzvzJ/5J63X/mDlppCfM1XDwPA9IFX7DuYBYD4XW/+gzvjALB88F2u8748J/3idBa9C6sA3aN6mo4QokZgnUUvObyysZY6RBZWobXom10GGWCyDq9siKiuFgvQeRjAWOqvPE8fu4WZcAWgtRhg88gRUWfRa/yzDrCF1XKEvlaOLKyWGWCMj93CjD/XpinI2eV18V4byUC6KUdgWinUKz0oUoi+nAbQSHrSLZb6ayQFiMTjVKYJANDOMowEMk01Vag+57AzPhISqdBrR0Rw385OSkDTU4jTec0KYIQEi3RcsAgAUArqURUAhZEMGAVgkWolRl+rxiLVCgNY1fAIpaAv06Rz+/MdgI38dKQK0MwEEnUnAOtWI+5gSatGZGCVNOWRTOc3AOoJ+gjVyHR+A7TiXLCkgZafJsGSBnoE1s75/YUNWKevA0AzM6XDhH2QOT8hUfVfnbp0gLHP11+g16cQqoT5owlgZKbQaef8JFSC9SID6erCZLYNG5VwQB+jXCtaA3qtZANAy/lIqqHPqeV8sRpAMx3QMbU8S4ge/bRzfkJiNX0+aTwH2OqCd7Ej1rCemyI8+rFLIYbKGqznpsS8vSKw5dn5MkB7KcCOT8RqsBqfIKk1aB45NM++vtpL04TEjol3vrowEbP7CaAAYNAiDgowGngVEsduuPihQuIY/eMQAOMpxENf/K33/vMiQPIbbxV0ec8DRYDn/vq3r/oB/85sPXbl2fv2/c6VP+C5FIsUYvnBy95ww2QLAKDy8OWvv96zBtCdv+1tLte5X/S2wSKFOHfrWRffewQAAA5/9ZwL70nSCOwmn/yPOQaZnilEBg/9uIiorCMwFgkRlupTx1Ow0Hn4qNlleZ5uLeohxr0hA8Ao/DqF2XSTA0uZP9fWQSbWr++lhSumFKKAkUmGFGIr6+ORUiPJoz02xhRREQqiVtYnQCQ/r4loKVzpsnkyhnkohKumz8RBBEbhUQpOZZqG8fWkl0xk1H8TGwDWLQWDJdCKwUSdA0sHEgNXVYrM/PmOvJcWLPUBmDTOOjLzRKpdATIxRt9Lm8i2zeMBmplAsmGMvDggJFUiNhCzj8Doe2HHrSIw6TiDRyvt4etNNpQ5lb0rcZyBgc9JYyARPTXTU4SoERcAjajo+ep4tgYWIfEoSUALegNsY+WwiPx6AIy/D0JmCl1opt3zZQ3Wl6YCRzsAy7PTcuS1clhArL0UQID11vAAs3xufZH1J64+0yqFaAbY228PS2OMAHO9dt++fbcdZn/bdYBB6YdXv/KTz1oDDFo/uNLluvTBEsAuA5i852QPMBkM6v6ZiJq4DAADrRxaqNIU4wAA8+f07RYZYLWoUhiiyrgHVgrxPbieAJOvBQCd/IwApHjuGGDsOZkrCoZtCWD0OPHnpTUaAdatRmKVaiRWhUEARiMyKicpRLvj9gCT97osAAb1RCBbktKEWs5HJg37bBZAExo1wEIl/d8dfE4pwuoDMNM+XCVsUfjCU4nqeB1g8n6VU4DRGSZJaq0PwA5Ju1k9ALY8S4g+EgHWV4NVIRqKOCi0RBGHLcCgM33Tm15/vUf+hrMA2MpT155xwd0JfUzy6xeyrSwQRRz+m0+/5NsZAOsiDgcpRMMemGUK0QAwPYU4OoBp5ZAMIz2FOJVuArQWfVNs1+uQf0l8r5gLQBopL7HeA1tYBegUAoHDWavUIX9spLxKCrFbi3rYHhOAvAfms4cXgBFghhQiW8sMnUuAp1tVrsXODIgvd5FatEsh2oCwnvTyPSwVSFopSCOqRpJYA6yV9U1l5F9T9t4jlntgkWoXtGIwEEpbpQ75YzPjU1OI9YRXKuYYHGBWKUQPXcscSxHm/XwsWAOsWwnH4mEKl24l7DbCq56YtIUXgGOANdNTfF+L2ANsvTgnF1JIAOOpwxk5tbi6MKmAjf9ZVTvnF/tZ7GfHAKaO52tYnpXXII/pBzBYX55l6UQ7gDXTUzoQ7QDGUoqSMIXYVwP3QpTL6G+4+CG5jL7nhWrP/NWZNmX0HGAAR7//wd90uVwu10X3U99oqyKOI/dd7Hr9HRF5D+yN/2eK//0bTRGHCjC7Io422xdjRRwDAQygtegTqTpp/OH4jNgnA1ZBSFhRh3UFo5AJYHT/C0CNtAiRijjY/HoRR4clEXn0Y1280TVAQy+jn0qvGYs4QvE5OqMovmA/gU5euZbYQzMWktgWcdhEckLGiIrtiQXjNhGYZRGHLBPA6P5XF9RIi16FRYLdasRNiFTEoRWDbF9ug88jVSj2B5hFEcdcPOQmhIjx9cSkSMlJ81QjhBAGPQ+HjSO1Mp6gHiVZlNH7si0zwEDL0V/yeLxHBMbSfoSlKwUUWWpROjcWnSKEeFNKVMcLKchMwfL9bFTCbinFaBhvWgNDhl7osZ6bEkUcdJ75srQHpp/TTLsJ8S02eBk9nWOm0AHYWDlM+Hx9UoiS6L4cqoeG6YVodyPzqStacLEDEuDZ7SqFnN7vpacQUfYqBYPD30elpxAdq1sJuwc5h0dDqB0UltH31/C9EM2tpE5htRaDS6abpLZBewVgA9xcjABzIFo1OKwGBdh6cW7Qm6OLc9t/ozJKFd7I7EBoaIlCoVCoPSkEGAqFQqH2pNCRGYVCoVB7UgNXIaJQKBQKtRuEjswoFAqF2pNCR2YUCoVC7UmhIzMKhUKh9qTQkRmFQqFQe1LoyOzs4kM6Mh+LTcR33JGZHF6pjsqR2emN1WXRSor6m41QW3FkrumOzFu/QVxvl0XIXLGmdubXSsF+rs/WLa/0JsW0279oyZXRHZlN/RmHlN46a4uqRgj1UFM762+vikGDoaXaaquXWOstYjG+v8mnuK7cTquV8Rh7RfL+kLR9li/bUttvjVRWZp7ObjZv5wJ9DDz3lAarQkRH5t0KMADYFkdm5wDblY7Mjh2lnUqHUCNJiO5D1q1GPVsHGABI/Rs38tO0E347O2G0dRlOIwOYTWf97dWwAGN+ajavDgkwC3GAiabGOwwwpzqluqqgI/N2OTIvrUMfgA3ryKwAsJcjM/cOK8ynF+dtmvlaODLHCBGNdGMOHZnLiiMztWRppLzhCjRS3JGZ9ZOkDYt5Z3r9Wj0cmbkFjLGZ7wJzZDasTSvxz0QFWDs7KZ27CpJbtIBIOztJiNGRORrloJIB5g7F53g3/VI4sWTTdFjMGY8r8CMe1hm/L8CgkZzItKqSkzVrSqw3IJ5bSilNiFlD4UiVzRMPe/0BH4seCwXRlZ9ZwgTyBrDWE4GeYLK3hlEcrq2sZGIxHyHBYi0hr5dGcjSKo2N8mSZvesyaGBeDvmxWGid32SeEep+p7yFcoj+/iFuNluTxOsCK0txiTDw+IdZgiMCCJY215SIk2eAebKKpcUWJ+loZDx1Hn8/FQ27iTTaKc4SZgfZ3wdavJdyfsy1YXfDMx2c90VpXapS8FKZrZu+ajg8tJT2hkgZaLjRQG7FdLXRk3iZH5unZZZABJuvFcGRmABOP/RyZUwHFP4xGcfbpwbLqyJxyp5u1GHvOzqvFxCODXTs7qbg/2zoycxsWwyP7rEohKV3azk4S1cNMX5cFwAxu0aq7M1AYyYBRABauVGL0tVosXKnY2b0w/zIohYg/1wbYKPipgWdA9TljMgGsW4145opaNSoDq6gpj2Q6T61rpvMaAFSj03kNtFJwrqjBRn6aeaTxCKyTn5FeB2ZAqsaPnbyfqO7UskzmnNwRmptvChNOk5mnP9/p5P2EGoFOZChEJjJt6FYjAX2Mfi0tPx2tAgUM666vdNlnrzczAd1CphhkXffpL0XeT0i0qs7HxnOA1RMTWX0N/Bp0LusUYrCkKU2Oe0VgNOpp5wLsuCda7TLLmmZmikdEfV2wlWtx6xYOKgEw0dWfPkq2M4QCbPjobdcJHZm3y9Dy0JFmrwhsy47MMY8epTHZODIH0k3L+Z04MqspRAEjk8oWjsx0LY0Uj/bMppp++Vqy55j8XIqWjMaYYh4KYbNLtYMITMypmGQC0CjQY3RkVgHWLYXmiqCVgom6c+NNfS9trtgHYGxcsAg2kZk7Uu1aGXXyK0xkWubxDJ7GyKsUNNnIVCM2EOtnztnHzFM1/2xnJvh6E3VlTmXvSgLJRLCkCYAV1X24ZmbKyoiznuANjIsGR2xuCsqPJhtqurIXwGQvtR4A49EYjbZ0+Fl4qtm7YBuvJbzH2J5WHxNR4MahG5VwAAGGjsxbBtiOOjI7B5jiyCwBrBbr4chs3AMr647MvQBmdGQuSI7MhRklhdgfYOw5sTDkpBoQYPQ4UdZoBFi3Go1WaIpxAIDJRRlOUoh2x+0BJu91WQAM6slApiyZh27kp4lxn80CaPrnMGKABXUXbTEnP0cHlR3ATJ31qxGLbvs8laiON7laA4BzgNEZqPlnT4B5JaT2AFgvF2zjtRBggI7M2+fI3AdgI3JkZilLsU5bR2abFKKVI7MERX0PrI8jswowQwrR4MgsAFazdGQW84jUol0K0QaEjaRwqVYBppVCnjR3ZLYEmK0js+UeWLjSBa3EHZntHKPFnByGjaRXWu/gALNKIVJ36FJQpAglEFsBrFuNRONh7owd8RjhVU94beEl5uwPsGbGx/e1iD3AtGJQBq4EsAhLHfJIa4Y6Wk/OyGDjf1bVpmlKSRxg6ngGMOFmzY/qY/oBDNaLczKQLADWzExJ0LQBWD8XbOO1nAJMcrA+9VKIA/dCREdmAHDiyNwHYDvtyGxXxGHryMz2q2wdmZVITSqjn0qvGYs4gtSR2bg2k/uz2EMzOjLbFnHYRHJCxipEtic2F7eJwCyLOGSZAEb3v7pg7xxNKxSJVMShsZ0jCvikO1zpShWK/QFmUcQxGw95CCFifD3pFSk5aZ5qlBCiQM+p1CjJoozel2maASbSoNyN2hJgAM0M/bsQqUrn8tRiPC4iLebIbHCs1pgvtI2nGnfEFgUaynhRxNHMMFdomjLVCz20/LQo4qDzhEoShAjhKb9WxkOIL9vgZfR0jpl8h6b/CCFkMtvuGYEpMlQxqtdKe0QRRx+A8eKPyXicFXGcQuak6MjsROjIbFQ55PR+Lz2FiLKXc4drC+kpRMdihSGOx/NoCLVzGjVoeCR2SpXRoyOzI6EjsyqWHnQiBJgDbeVm7cEBppWCg94cXQpu/43KKFWjAs0Gi/5oteIpdiMzGlqiUCgUak8KAYZCoVCoPSl0ZEahUCjUntTAVYgoFAqFQu0GoSMzCoVCofak0JEZhUKhUHtS6MiMQqFQqD0pdGRGoVAo1J7Ujjgyrz9xte6DfLO/35rqj3zwd/f/vA7w00+/6hab0cUH3iOmPO/upPUggMCXXv3Of0wDAEDo1rP/8N6Uw48FAACe/YS4hOu9Dyw6Pm9Y+2Z2F/PO2je7w5XKqOybnbpHqu3YR6qt3BFc1e2beztTOpHeY4mbX0l3AmvFIPH2cb9kzQZV6b2aeK8j1scpq9s32/QlGlj9nR4dqhIhhHii1S7r4ER7MW2zjP2ZBmgAWAnTRVqM1/s22Wl51rfYAgBopt2hMvtVbKbdqTV13HpuaqbQAVjPTRFCfIstefwQWo0HFk8Zk68BNFgV4pCOzFI3+mc+7nrjnbHeaxIA66HiA+9hDikd301vevdBm75GWwTYK6/+4eB/04a2b94xgAHAttg3OwfYrrRvrhpb0W9VOoTqCSL5knSrEffWAQYAANWIsTFgKzNhdHYcTiMDWP+mf9ugYQG2UQn3AMmQALMQBxjA6oInVuv2G99XFpB8KWhHHJklgHX/7SMUYIvfYSHUm26aZr9XR+453+VyuV6+f7+IwF7+J49SNP3nZ9TRCsA+dF8WAOAn151+zRPU2fI/PvnKD//Q/80L6EmnX3PvrRfRp6/8MEUS+ZzaBrj80GVvuOHeG89wuVyuM6/79yqAJcDmvnyWy+VyuX7nk/9xDABAe+KaMz+0/0NnnX+HsIEZyr45tw59ADasfbPSx6mXfTMb1y3MpxdDNp1/LeybLbru9rVvLin2zX7eoj1ckSySadt4qEk2xA7tmy076taikwlm32wABzXzAjACzNKjRLEbpk6SxGjfHBHOiTLA3KH4LO+GWwonliSfERalsS8vvYOtDD/CnR/7Aow6M1Yj3nDcT19jplqSF8lScoIQ3bdDo2uIVtk88fDkTGCKRY+Fwtwkty6OVrvdSjhgBGs/K2FrgNUTnij9PBkUrHxAYtEpQkKl2oK8XhrJ0SiOjvFlW6xjrezumKXjyvKc3J7Yu6i+idWFSBmAAizVUF/Rx+sAW57V5xZj4nHas+lQas0YgYXKGsA6PSu1JiyVF1sUYCtK1NdMu+k4+nwuHiTkUGpteZYQMnO0C2AVca0uzG8FgHtUO+LIrAMs9c2LXvlnj8tQSNx93tWPrwNA6YFLz/2CtwWw/vjVLgPA/De/6pJvZQAg8bXzzv/7CCgpxNffHqFTGQFWtI3AAl969TvvTwNA6htvffvthwGg/NBlLteHHm0CNB+9wnXJtwqgphA/RwAgefdbz789DJLvmPbENa5z/tfP5K/rYeybfXLr911g3xxSPVf62jervicAWinUKz1YUu2bk550i6X+TBbJNcmGmGEkkOlt32zpaVKLEuqJolgut7OTxNTinRAyndesXSKZsyR9hFJQdXvcyE8TkxEXB1ikWonR16qxSLXCAFY1PIpW7Nx/hHXRbWYCSvt2LhPAutWIO1jSdEMsbnQlPQr7ZNq+vRqZzm+Axnw68tPMyphHYO2c31/Y4D4eYOkY2ddKmAGMfb7+ArNvDpUAoBLmjyaAkZlCp53zk1AJ1osMpKsLk9m2MLWiY5RrcTtibpxFUpKBlpbzxWoAzXRAx9TyLCF69NPO+QmJSdbH0ngOsNUF72JHrGE9N0V49GOXQgyVNVjPTYl5e0Vgy7PzZYD2UoAdn4jVYDU+QVJr0DxyaJ5Bs700TUjsmHjnqwsTsVOmybxj7Ygjs7QH9pn/FEef+2t27Pw7IgDH/uV/vPZvnm8AKHtgFGChr5x90TdTAAAQvv11F349aZ1CdAyww7oVZvSOcy/4WoJFYNQKs/rw+1/3efeaOQJbuu8dv/flWQ1A9x3TnrjmzE/8u/JrM5T7pez0uB32zSarYlv75tl008J50pl9s5pCFDAyqWRh30wjJSvXSjWiIhREskmX/Nyxq2S3avpMHERg3CtkKtM0jK8nvSZHSAPAuqVgsARaMZiom/xEejhA8rdN7YN7AEwaZx2ZGZwb2Rh9L415h6jjAZqZQLJhjLwsnBdtrYTtI7CqEydGdpzBo5X28PUmG8qcyt6VOM7AwOekMZCInprpKUJSJhOu1QUesarj2RpYhMSjJAEt6A2wjZXDIvLrATD+PgiZKXShmXbPlzVYX5oKHO0ALM9Oy5HXymEBsfZSAAG2zY7MmW9fwoo4/LfwmOru87YGMFjzXP+6yx+unOIA21H7ZucAU+ybJYDVoj3sm417YCXdvrkXwIz2zXnJvjk/o6QQ+wOMPSdSG/ctAYweJ7KBlwlg3WokVqlGYlWzIVY/C2MmJylEu+P2AJP3uiwABvVEIFuS0oRazkcmDftsvayERw2wkGydzOaUIqw+ADPtw1XCFoUvPJWojtcBJu9XOQUYnWGSpNb6AOyQtJvVA2DLs4ToI1+aANsRR2ZpD2zhrgveeGcMwH/Lqz79UwDI3vsOGoG1vV84d7AUoikCi9/5B2/+hzgAwM8/4xo8hdgXYNYpRCPAhrJv7gOwEdk3N1JeZ/bNNilEK/tmyVJZ3wPrY9+sAsyQQjTYN3NIdKuW9s3iy12kFu1SiGtY3KsAABWwSURBVDYgrCeF9bAKJK0UpBFVI0msAWZr32y5B8ash5l9szF1yB+bGZ+aQqwnvFIxx+AAs0ohqhbE7byfjwVrgHUr4Vg8TOHSrYTdRnj1sxJ2CLBmeorvaxF7gK0X5+RCCglgPHU4I6cWJTti5c+q2jm/2M9iPzsGMHU8X8PyrLwGeUw/gMH68ixLJ9oBrJme0oFoBzCWUpT00kwhDtwLcRhHZglgsB7427e89rPPN7w3vszlcrku2L+fRmAAx5771NmDFHHwrOQZf/HjFXqd5mMfooc+sZ9FYHDoi7/lcp1+zZNlgOmbT+9TxNEPYNZFHAaADWXf3AdgO23fbFfEYWvfzKMfO/tmFRolxb7ZUMQRovbNUvEF+3Lt5J3ZN9sWcdhEckLGiIrtiQXjNhGYZRGHLBPA6P5XF9RIi16FRYLcPlgUcWjFINuX2+DzSBWK/QFmUcQxFw+5CbMKpqubFCk5aZ5qhBDCoOfhsHEk1UrYooye2hUbAMYth0k83iMCY2k/wtKVAoostSidy+ybUwZ7YpYUnClYvh9hnsWBpow3rYEhQy/0WM9NiSIOOs98WdoD089ppt2E+BYbvIyezjFT6ABsrBwmfL4+KURJdF/upSZ0ZB650L7ZKOd2w3oKEWWvLblL6ilEx+pWwu5BzjmlPOv3il6iZfToyDx6oX2zqgFuLkaAORCtGhxWgwJsvTg36M3Rp5Rn/R7RS/VGZjS0RKFQKNSeFAIMhUKhUHtS6MiMQqFQqD2pgasQUSgUCoXaDUJHZhQKhULtSaEjMwqFQqH2pNCRGYVCoVB7UujIjEKhUKg9KXRkttdOOzIfi03Ed9yRmRxeqY7KkdnpjdVl0Upq1saIdGhtxZG5pjsyb/0Gcb1dFiFzxZramV8rBfu5Plu3vNKbFNNu/6IlV0Z3ZDb1ZxxSeuusLaoaIdRDTe2sv70qBg2GlmqrrV5irbeIxfj+Jp/iunI7rVbGY+wVyftD0vZZvmxLbb81UlmZeTq72bydC/Qx8HyxNVgVIjoyO9DQjsw7BjAA2BZHZucA25WOzI4dpZ1Kh1AjSYjuQ9atRj1bBxgASP0bN/LTtBN+OzthtHUZTiMDmE1n/e3VsABjfmo2rw4JMAtxgImmxjsMMKfa7V1V0JF5VzgyL61DH4AN68isALCXIzP3DivMpxfnbZr5WjgyxwgRjXRjDh2Zy4ojM7VkaaS84Qo0UtyRmfWTpA2LeWd6/Vo9HJm5BYyxme8Cc2Q2rE0r8c9EBVg7OymduwqSW7SASDs7SYjRkTka5aCSAeYOxed4N/1SOLFk03RYzBmPK/AjHtYZvy/AoJGcyLSqkpM1a0qsNyCeW0opTYhZQ+FIlc0TD3v9AR+LHgsF0ZWfWcIE8gaw1hOBnmCyt4ZRHK6trGRiMR8hwWItIa+XRnI0iqNjfJkmb3rMmhgXg75sVhond9knhHqfqe8hXKI/v4hbjZbk8TrAitLcYkw8PiHWYIjAgiWNteUiJNngHmyiqXFFifpaGQ8dR5/PxUNu4k02inOEmYH2d8HWryXcn7MtWF3wzMdnPdFaV2qUvBSma2bvmo4PLSU9oZIGWi40UBuxnRY6Mu8GR+bp2WWQASbrxXBkZgATj/0cmVMBxT+MRnH26cGy6siccqebtRh7zs6rxcQjg107O6m4P9s6MnMbFsMj+6xKISld2s5OEtXDTF+XBcAMbtGquzNQGMmAUQAWrlRi9LVaLFyp2Nm9MP8yKIWIP9cG2Cj4qYFnQPU5YzIBrFuNeOaKWjUqA6uoKY9kOk+ta6bzGgBUo9N5DbRScK6owUZ+mnmk8Qisk5+RXgdmQKrGj528n6ju1LJM5pzcEZqbbwoTTpOZpz/f6eT9hBqBTmQoRCYybehWIwF9jH4tLT8drQIFDOuur3TZZ683MwHdQqYYZF336S9F3k9ItKrOx8ZzgNUTE1l9DfwadC7rFGKwpClNjntFYDTqaecC7LgnWu0yy5pmZopHRH1dsJVrcesWDioBMNHVnz5KtjOEAmz46G0nhI7Mu8LQ8tCRZq8IbMuOzDGPHqUx2TgyB9JNy/mdODKrKUQBI5PKFo7MdC2NFI/2zKaafvlasueY/FyKlozGmGIeCmGzS7WDCEzMqZhkAtAo0GN0ZFYB1i2F5oqglYKJunPjTX0vba7YB2BsXLAINpGZO1LtWhl18itMZFrm8QyexsirFDTZyFQjNhDrZ87Zx8xTNf9sZyb4ehN1ZU5l70oCyUSwpAmAFdV9uGZmysqIs57gDYyLBkdsbgrKjyYbarqyF8BkL7UeAOPRGI22dPhZeKrZu2AbryW8x9ieVh8TUeDGoRuVcODUBBg6Mu8owHbUkdk5wBRHZglgtVgPR2bjHlhZd2TuBTCjI3NBcmQuzCgpxP4AY8+JhSEn1YAAo8eJskYjwLrVaLRCU4wDAEwuynCSQrQ7bg8wea/LAmBQTwYyZck8dCM/TYz7bBZA0z+HEQMsqLtoizn5OTqo7ABm6qxfjVh02+epRHW8ydUaAJwDjM5AzT97AswrIbUHwHq5YBuvdaoCDB2Zd4Ujcx+AjciRmaUsxTptHZltUohWjswSFPU9sD6OzCrADClEgyOzAFjN0pFZzCNSi3YpRBsQNpLCpVoFmFYKedLckdkSYLaOzJZ7YOFKF7QSd2S2c4wWc3IYNpJeab2DA8wqhUjdoUtBkSKUQGwFsG41Eo2HuTN2xGOEVz3htYWXmLM/wJoZH9/XIvYA04pBGbgSwCIsdcgjrRnqaD05I4ON/1lVm6YpJXGAqeMZwISbNT+qj+kHMFgvzslAsgBYMzMlQdMGYP1csI3XcgowycF6T6QQB+6FiI7M2+HI3AdgO+3IbFfEYevIzParbB2ZlUhNKqOfSq8ZiziC1JHZuDaT+7PYQzM6MtsWcdhEckLGKkS2JzYXt4nALIs4ZJkARve/umDvHE0rFIlUxKGxnSMK+KQ7XOlKFYr9AWZRxDEbD3kIIWJ8PekVKTlpnmqUEKJAz6nUKMmijN6XaZoBJtKg3I3aEmAAzQz9uxCpSufy1GI8LiIt5shscKzWmC+0jacad8QWBRrKeFHE0cwwV2iaMtULPbT8tCjioPOEShKECOEpv1bGQ4gv2+Bl9HSOmXyHpv8IIWQy2+4ZgSkyVDGq10p7RBFHH4Dx4o/JeJwVcexuc1J0ZB650JHZqHLI6f1eegoRZS/nDtcW0lOIjsUKQxyP59EQauc0atDwSGy3l9GjI/PohY7Mqlh60IkQYA60lZu1BweYVgoOenN0Kbj9NyqjVI0KNBss+qPVirv/RmY0tEShUCjUnhQCDIVCoVB7UujIjEKhUKg9qYGrEFEoFAqF2g0apSMzcbvHuYjbvd1LR6FQKNRLWaN0ZB4fH4/H45ubm+vr6+Pj49u9dBQKhUK9lDV8Ecfx4yfof+LI+Pj45ubmY4899uSTTyLAUCgUCrWtGgZgx4+f+EX3l/GpwrMPzManCr/o/pJibHx8PBAIbG5uFgoFBBgKhUKhtlUDVyEeP35iZbFOHovMk2y7sT5PsuSxyMpi/fjxE+Pj408++eRjjz22ublpBlji7vNY76ff+dRzx8B748sue3BpgJV2Hv/Ts/7qWelm8+id5wq3k/c/PMCd/+Unrzn9wntsXZxVHbnn/Ld9Zb4L9Uc+KK52zlfm+5228t0/esP/nmgC/OS6c75qM3rp/ovElK/5zH/2a2wmxB2feV+ewytOz3So8vzwTsl6R/xDW+5HsgPO0dTPjMovPNsIkXpKbkkju9m8PE8Ioa4BfL09+02OQsYWYDafp6V4u7BhjE/168o3tjfMHW74emjLM3+uPeIb4fWGzo5V6mfWajFnt+B38rPs67P3UtRgVYjHj5+Y+2maPBquHl0TKcTq0TXyaHjup+nx8fH19fXNzc14PG4AWOXhy11/9F35i3YkALvgawkAgNq/X3fmNU847S5Q/cl1H92//933ZxyNlgB2zv6f1QGg+29/7jr/niO9TxMA66Gl+y/6vS/NDtxTwez4vJvUx3V6cO2Ac7Tc+5GOX0uZ7GeG0+i6pVg7AGyrhgaYVg71AMmQALOQqZ/n3gSYUzkE3UtKg1UhHj9+4tkHZqd/kjAAbPoniWcfmLWtQtwI3rqPN/Pl8t74ssvu/Qca1bzj6wl21H/zq1wul+u8u9mBFmvP+5EfdQXAyOdcZ9wyYwDYRx9lAUzqG2+l1su0D++hL/zWe/95EWDlqWvPuPbHAACrP/30n3+v9vzfvPeBRXqG5/rfuPzeO//Y5XK5XBfek2Ir8d30CpfL5Xr7/v1GgEHrsSspwI7cdzGNn867Ncj+1sTufKPL5XKduX+/iMCEx8uzn6Sj3/p/6WgLgGlPXkPHXMA+gfhdb/79v97/zt++8gc8JrJoFiz+ItdiEwurcCw2EWdOzbSlVXn+UDQ+TcEiOztDLTYhIjjpuWK8SaMf5gp96MjiPCGEGCHVOcr7wqsAkx2lDS7S4ktMdpEW73Eo52ilCTKxcI6mUHIAMKjFpnLr5fmpaMzHO/PLkdlaihxWnKPFGhZW6fNAfN4TCBxi0eNyfka+tlYOGUHAzUptZW9ho3yeVpY38YiXuMOVSkxaL4vkuBGqPx7x+nNt3jBZNzBdyujjjP+YMPipQbfG3Ki1csgQLVk5dytr0MfE40SswRCBhSsbvKmzO93k0bM/12amrErU15B+r3iT6Kn0WmFG/P53a9FAz38MtLOTc0upSfFzBVOTaNHQ2WDfY/zhFWYIIZ50i5um+nNtqEWZ23hXt85JL4b0zx9YQ2l3eCnhDlc2oJ2d26l/vOwVDVaFSAGmdbqpwLJIIaYCy1qn++wDs3JBh6LI3+/7yI8MeS7vjS9znfl3swAw+3dnMp/L2J1v/Mi/daHju2nf/p/XAeAnH3cxgxQegSV+cNU+buWlpxDf/R329V78zntof/nO2IfP+uSzxwBg/FNnfCmwdN9FH/j+KgDAGvn81d8pAjz3qVd/KQAAAJ7rXa6zbw0BwMwtZ7g+TwAAIre//h13JwAg/09/6DIAbOGuP3j1Xz4t/0sofPvrPvYUAEDu/j98y98GNID69z/oMgBs8gbX+767BJIbmZxCvOi+JQAY/9TLKammD7xi38EsAMTverNLTXeaHJ+Zm/PU0jpL/R2LCRCJx2n+xeumGGHOznqqUH3OYWd8pH+Ru0dn9EgI1lIy0OxMNXu4SBMFJ1txjp6XvngtnKPXjM7RYs0GgDH7mvK8DCzqjC0eVedo9vl1CgFuQErft7CYWfRJrwO1tjF8ybcWfYTYxiYmE1F+ffZ5hvij2XR0dnmdWdx0CjMcIr6cxkFq5RW3sEo/P3e6CdBZ9PJHCyduAPZzlKKfVlZ+L9bO3coaxDWgRwoxXNngc1n9bsjjuTs5TbtRm55uLepxp5vM+cBinUa1s5PcBcDgdiCcCziwjI/GecQ1ZJ858Q8F3byUfu5+uiY2tluLehjAho7eTlUNVsRBAUYDr/pK+9kHZusrbfrHIQDGU4hTN7383d9ZBDhyz9vFF/q7Di5TO5XH+Ndq5/E/PWvfvnOueITvFVmkEKvfe/9rP+9eAwBY/dcPsH2l2J2/73K9Thz+44vuXwIAePpjr7ktDEAjsIdzdFFfeNllDywxl80wAFjtgZ12o1e8i6c+yg5e+PUkQEl32ZT2wCjApm8+fd+3swCgm5SZIrDnP3fa+/8lDwAAE9e7Lv9ujkZgd8blD87CMBOAfiGyL01my2LtQ8bxQr/QdX8w+blq72LvZwZaed7ouuwgArM14RyFc7QypyPnaLN9DFFtayy+KC3BzAKH3LqVVc1aKpBuGiIvAQhlLTZfqH1MRPuZjqoGoTQ64RGKPKccxZhAYv15QiPlNb0PoJ+J8I8zf/72a+gJMK0cEpFfD4Dplj2zyxbrN9n7WH7mvU1NLY1SLQGmlfQ1m+a0OJeDS7Xj2QCtFEKAqRoeYJbPrS8i+4FxWQPsbbfNS72PjQBz/e6+fftEtk4HGJSf/MirPva0DcC0J69xuS75VgEAoD32YZeut3xtAQYAGI3AUt+8iBVxTN54Gn0L3Cb6xQRY96j4MuwPHl2txWlRBCKeOwYYe66abQ4PMHZ8S87RNgCTizKcpBDtjtsDrEfUCMBShEUpTdhZ9BphbQU045yjApi8VyTmlCKsPgAz7cOVDW7UACBSidZrtlkD9AEYUHNTJSK0BJjBNNVm/T0/81EBjK3Zk24hwEaswaoQDUUcFFqiiMMWYNCZvvlNr7/esyYdsgBY5emPvfqCuxb0Mal7LhIbSLyII/B33GPZqoijXwrxR9eee2eUzd549IoLvpmxBNjKj//iDNsUYnf+K287/54jAJM3nvZ5DwAkvnYejcAaz3/2tYOlEA17YJYpRAPALByfwZRCPHSkCdBanFZTgKCV500ml/Lei0gt2qUQbUBYi03wLwEVYJ2C2Psh1rBRXaSphnaOnledqXXn6JiVc7RQX4BZpRBV52jhim29ZgDQyqF4fD7Nfg4hE7xqMU9PHzmHAOPpMfHeLQEm1g3yuXLqUE4tCudtvgbViZvL7MTNAWbp3G1YgzSmH8AAOoWABCSwABh3D1fONXyGAoR2amcnOTjYvMOlEOU1DwIw7kLO14EpRJMG7oUol9E/+8CsXEYPAI9wmS5Ue+avzrQpo+cAAzj66BUvp2Ud99JgxaqII3P/Ja5zvjov74G94YYJ7lLas4jj2U+cdWtILKn68OWXfLtgBTCAwr/+z9+0K+KAlvcL5577BW+b2US/a/9+GoFRBo+8iEMFmF7EwXMk00t1YxHH4XiAEKX4gv2lai1S01u+NyY2tNXn9kUcNpGckLEKke2JheM20ZJlEYesAZyjjc7UPZ2jpffQH2AWRRyqczRNf/L3oczN18Wh51Sqo7ZFGb0oXuCfJ4eQ/N6tAUbTfjyVLAPDeG484tWLCsT7Uj5PszSRwGNAs3bultcAcqFHZ9HLizj0eXQI6ec0UoQQf67Oy+jpHGIfk8/nIIKk0iMsAABoZydn4/MeNjf9OTsq4jDPI605SUQRR2+Aic/NF49zgGEhvapheiHa3cj8yCOPnOCyYhhqJOrr+CxSfyh7sU3+IaXCxZFYYYjj8XKxAmpnNCpAjBg0PBLDMnqzhu+FaG4l9YiqHXwXLy31c3xGgDnQVm7WHhxgncLMgDdHbw2wqGE0KkCMDDRaiUWyU+km3shsqVEaWlJu/fIXv0SAoVAoFGq7NXqAYQSGQqFQqB1Qrz2wEydO0Nd+7bv0FygUCoVC7SbRkgvKKYoqI8D+67/+64XCv9D//9p3Kf0Pj+ARPIJH8Age2Q1HegHsVygUCoVC7VbZAuzEiRP/D4VCoVCo3Spx+5YFwDZRKBQKhdqtsgTY/wdI7zGE0YQWZgAAAABJRU5ErkJggg==" alt="" />

下面看一下原代码,它直接写在了System.Web.Mvc命名空间下,这更说明我是对微软MVC的一个扩展,希望MVC5出来时,可以把这些都集成进去,呵呵

#region 单选框和复选框的扩展
/// <summary>
/// 复选框,selValue为选中项
/// </summary>
/// <param name="htmlHelper"></param>
/// <param name="name"></param>
/// <param name="selectList"></param>
/// <param name="selValue"></param>
/// <returns></returns>
public static MvcHtmlString CheckBox(this HtmlHelper htmlHelper, string name, IEnumerable<SelectListItem> selectList, IEnumerable<string> selValue)
{
return CheckBoxAndRadioFor<object, string>(name, selectList, false, selValue);
}
public static MvcHtmlString CheckBox(this HtmlHelper htmlHelper, string name, IEnumerable<SelectListItem> selectList, string selValue)
{
return CheckBox(htmlHelper, name, selectList, new List<string> { selValue }); }
/// <summary>
/// 复选框
/// </summary>
/// <param name="htmlHelper"></param>
/// <param name="name"></param>
/// <param name="selectList"></param>
/// <returns></returns>
public static MvcHtmlString CheckBoxFor(this HtmlHelper htmlHelper, string name, IEnumerable<SelectListItem> selectList)
{
return CheckBox(htmlHelper, name, selectList, new List<string>());
}
/// <summary>
/// 根据列表输出checkbox
/// </summary>
/// <typeparam name="TModel"></typeparam>
/// <typeparam name="TProperty"></typeparam>
/// <param name="htmlHelper"></param>
/// <param name="expression"></param>
/// <param name="selectList"></param>
/// <returns></returns>
public static MvcHtmlString CheckBoxFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, IEnumerable<SelectListItem> selectList)
{
return CheckBoxFor(htmlHelper, expression, selectList, null);
} /// <summary>
/// 根据列表输出checkbox,selValue为默认选中的项
/// </summary>
/// <typeparam name="TModel"></typeparam>
/// <typeparam name="TProperty"></typeparam>
/// <param name="htmlHelper"></param>
/// <param name="expression"></param>
/// <param name="selectList"></param>
/// <param name="selValue"></param>
/// <returns></returns>
public static MvcHtmlString CheckBoxFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, IEnumerable<SelectListItem> selectList, string selValue)
{
string name = ExpressionHelper.GetExpressionText(expression);
return CheckBoxAndRadioFor<TModel, TProperty>(name, selectList, false, new List<string> { selValue });
}
/// <summary>
/// 输出单选框和复选框
/// </summary>
/// <typeparam name="TModel"></typeparam>
/// <typeparam name="TProperty"></typeparam>
/// <param name="expression"></param>
/// <param name="selectList"></param>
/// <param name="isRadio"></param>
/// <param name="selValue"></param>
/// <returns></returns>
static MvcHtmlString CheckBoxAndRadioFor<TModel, TProperty>(
string name,
IEnumerable<SelectListItem> selectList,
bool isRadio,
IEnumerable<string> selValue)
{
StringBuilder str = new StringBuilder();
int c = ;
string check, activeClass;
string type = isRadio ? "Radio" : "checkbox"; foreach (var item in selectList)
{
c++;
if (selValue != null && selValue.Contains(item.Value))
{
check = "checked='checked'";
activeClass = "style=color:red";
}
else
{
check = string.Empty;
activeClass = string.Empty;
}
str.AppendFormat("<span><input type='{3}' value='{0}' name={1} id={1}{2} " + check + "/>", item.Value, name, c, type);
str.AppendFormat("<label for='{0}{1}' {3}>{2}</lable></span>", name, c, item.Text, activeClass); }
return MvcHtmlString.Create(str.ToString());
} public static MvcHtmlString RadioButton(this HtmlHelper htmlHelper, string name, IEnumerable<SelectListItem> selectList, IEnumerable<string> selValue)
{
return CheckBoxAndRadioFor<object, string>(name, selectList, true, selValue);
}
/// <summary>
/// 单选按钮组,seletList为选中项
/// </summary>
/// <param name="htmlHelper"></param>
/// <param name="name"></param>
/// <param name="selectList"></param>
/// <param name="selValue"></param>
/// <returns></returns>
public static MvcHtmlString RadioButton(this HtmlHelper htmlHelper, string name, IEnumerable<SelectListItem> selectList, string selValue)
{
return RadioButton(htmlHelper, name, selectList, new List<string> { selValue });
}
/// <summary>
/// 单选按钮组
/// </summary>
/// <param name="htmlHelper"></param>
/// <param name="name"></param>
/// <param name="selectList"></param>
/// <returns></returns>
public static MvcHtmlString RadioButton(this HtmlHelper htmlHelper, string name, IEnumerable<SelectListItem> selectList)
{
return RadioButton(htmlHelper, name, selectList, new List<string>());
}
/// <summary>
/// 根据列表输出radiobutton
/// </summary>
/// <typeparam name="TModel"></typeparam>
/// <typeparam name="TProperty"></typeparam>
/// <param name="htmlHelper"></param>
/// <param name="expression"></param>
/// <param name="selectList"></param>
/// <returns></returns>
public static MvcHtmlString RadioButtonFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, IEnumerable<SelectListItem> selectList)
{
return RadioButtonFor(htmlHelper, expression, selectList, new List<string>());
}
public static MvcHtmlString RadioButtonFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, IEnumerable<SelectListItem> selectList, IEnumerable<string> selValue)
{
string name = ExpressionHelper.GetExpressionText(expression);
return CheckBoxAndRadioFor<TModel, TProperty>(name, selectList, true, selValue);
}
/// <summary>
/// 根据列表输出radiobutton,selValue为默认选中的项
/// </summary>
/// <typeparam name="TModel"></typeparam>
/// <typeparam name="TProperty"></typeparam>
/// <param name="htmlHelper"></param>
/// <param name="expression"></param>
/// <param name="selectList"></param>
/// <param name="selValue"></param>
/// <returns></returns>
public static MvcHtmlString RadioButtonFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, IEnumerable<SelectListItem> selectList, string selValue)
{
return RadioButtonFor(htmlHelper, expression, selectList, new List<string> { selValue });
}
#endregion

回到目录

爱上MVC~为CheckBoxFor和RadioButtonFor加个扩展方法吧(希望MVC5把这方法收纳——呵呵)的更多相关文章

  1. 在MVC应用程序中动态加载PartialView

    原文:在MVC应用程序中动态加载PartialView 有时候,我们不太想把PartialView直接Render在Html上,而是使用jQuery来动态加载,或是某一个事件来加载.为了演示与做好这个 ...

  2. Spring MVC 项目搭建 -4- spring security-添加自定义登录页面

    Spring MVC 项目搭建 -4- spring security-添加自定义登录页面 修改配置文件 <!--spring-sample-security.xml--> <!-- ...

  3. 【Spring MVC】Properties文件的加载

    [Spring MVC]Properties文件的加载 转载:https://www.cnblogs.com/yangchongxing/p/10726885.html 参考:https://java ...

  4. 爱上MVC~图表的使用Chart

    回到目录 图表在一个系统中是必须的,MVC架构把它当然是一个扩展集成了进来,通过简单的几句话就可以生成一个风格多样的图表,这给报表的开发带来了很大的方便,大叔的项目中也做了一个测试,把主要的代码贴出来 ...

  5. Spring MVC 后端获取前端提交的json格式字符串并直接转换成control方法对应的参数对象

    场景: 在web应用开发中,spring mvc凭借出现的性能和良好的可扩展性,导致使用日渐增多,成为事实标准,在日常的开发过程中,有一个很常见的场景:即前端通过ajax提交方式,提交参数为一个jso ...

  6. 百度编辑器ueditor 异步加载时,初始化没办法赋值bug解决方法

    百度编辑器ueditor 异步加载时,初始化没办法赋值bug解决方法 金刚 前端 ueditor 初始化 因项目中使用了百度编辑器——ueditor.整体来说性能还不错. 发现问题 我在做一个编辑页面 ...

  7. Asp.net MVC的Model Binder工作流程以及扩展方法(2) - Binder Attribute

    上篇文章中分析了Custom Binder的弊端: 由于Custom Binder是和具体的类型相关,比如指定类型A由我们的Custom Binder解析,那么导致系统运行中的所有Action的访问参 ...

  8. .Net MVC 导入导出Excel总结(三种导出Excel方法,一种导入Excel方法) 通过MVC控制器导出导入Excel文件(可用于java SSH架构)

    .Net MVC  导入导出Excel总结(三种导出Excel方法,一种导入Excel方法) [原文地址] 通过MVC控制器导出导入Excel文件(可用于java SSH架构)   public cl ...

  9. ASP.NET MVC 3 loginUrl自动变成Account/Login,并且发生404错误的解决方法

    http://www.cnblogs.com/think8848/archive/2011/07/08/2100814.html ASP.NET MVC 3 loginUrl自动变成Account/L ...

随机推荐

  1. iframe的自适应

    iframe标签的应用感觉很强大,但是有的低版本好像不是很兼容,所以有的时候需要注意这个的兼容问题,iframe 元素会创建包含另外一个文档的内联框架(即行内框架),他的属性有很多,也很容易理解,就不 ...

  2. C语言的选择和循环上机题目(部分)

    /*(1)某市不同车牌的出租车3公里的起步价和计费分别为:夏利7元/公里,3公里以外2.1元/公里:富康8元/公里,3公里以外2.4元/公里:桑塔纳9元,3公里以外2.7元/公里.编程:从键盘输入乘车 ...

  3. OpenResty(nginx_lua_module)做ES代理以及备份ES数据

    #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #erro ...

  4. 斗地主——扎金花——3DMark

    public class Card {//扑克类 private String face; private String suit; // 牌面值和花色初始化 public Card(String f ...

  5. SQL Server简洁查询正在运行的进程SQL

    通常我们可以使用 sp_who2 我们希望更加简洁的信息,下面这个查询使用系统表sys.sysprocesses,以及sys.dm_exec_sql_text做OUTER APPLY. T-SQL是这 ...

  6. 网页中插入FLASH(swf文件)的html代码

    一.简单插入flash图像<embed src="你的flash地址.swf"width="300" height="220"> ...

  7. 1.iOS直播ijkplayer(第一周)

    准备工作: 1.使用的B站的开源框架ijkplayer ,下载地址: https://github.com/Bilibili/ijkplayer ijkplayer 是一个基于 ffplay 的轻量级 ...

  8. oracl 创建用户

    -- Create the user create user ADMIN  default tablespace SYSTEM  temporary tablespace TEMP  profile ...

  9. linux ssh config

    Host code.engineering.redhat.com    HostName code.engineering.redhat.com    Port 29418    User jiall ...

  10. ImageView

    ImageView支持的XML属性及相关方法 XML属性 相关方法 说明 android:adjustViewBounds setAdjustViewBounds(boolean) 是否调整自己的边界 ...