ChameleonForms now works against netcoreapp3.1!
Huge thanks to @zabulus for assisting with this epic conversion. This conversion started from the work @zabulus did in #161 to get ChameleonForms largely working in .NET Core 3.0 in February 2020 (after some initial work in February 2019 to start converting to .NET Core 2). I then took the initial port, and over the last 22 days poured over every line of code (including the tests) and brought it up to production quality with as many idiomatic .NET Core features as possible across 69 commits. This includes a full review of the documentation.
As part of this the following enhancements have also been made:
- Improved handling of binding and server-side validation of enum lists and flag enums
- Added HTML5
typeattributes for numbers (integral and floating point, including proper use of
step), emails, URLs
- Added HTML5
requiredattributes to required fields
aria-describedbyto link hints with their form fields for screen readers
- Added support for aspnet-validation (jQuery-less equivalent) in addition to jQuery Unobstrusive Validation
- Added service collection registration method (
.AddChameleonForms), including fluent builder to allow for global configuration
.date separator in client-side format-aware datetime validation library
The breaking changes are documented in BREAKING_CHANGES.md as per usual.
The plan from here is to keep it as a pre-release (beta) until bootstrap 4 and tag helper support is added (which feels like the idomatic way of using ChameleonForms in .NET Core), upon which it will be released as 4.0.0. Due to the high levels of test coverage we have a high degree of confidence in this release and are happy to recommend it's use in production scenarios using the existing HTML Helper /
using driven syntax (which still works great!).
- #155 - Partial fixes contributed by Rob Moore (robdmoore)
- #152 - Partials: Correctly set the HtmlFieldPrefix of the partial view contributed by Felipe Sateler (fsateler)
- #148 - FieldConfiguration: Add extension methods that take Func<object, IHtmlString> contributed by Felipe Sateler (fsateler)
- #136 - Create inline helper overloads for IFieldConfiguration methods that take a IHtmlString
- #133 - Ability to change the context of a form model contributed by Rob Moore (robdmoore)
- #95 - Allow Html to be changed to a different model type +enhancement
See http://chameleonforms.readthedocs.org/en/latest/html-helper-context/ and http://chameleonforms.readthedocs.org/en/latest/different-form-models/ for the documentation for this new feature.
This release contains breaking changes.
- #135 - Add HtmlAttributes.ToString that renders the html contributed by Felipe Sateler (fsateler)
- #132 - @f.PartialFor, @f.Partial, @s.PartialFor, @s.Partial contributed by Rob Moore (robdmoore)
- #130 - Fixes for tests in the German culture. contributed by Jens Theisen (jtheisen)
- #129 - Fix Bootstrap checkbox display issue contributed by Jens Theisen (jtheisen)
- #128 - Fix for bootstrap checkbox bug contributed by Jens Theisen (jtheisen)
- #127 - Support List of Tuples contributed by Jens Theisen (jtheisen)
- #124 - Fixing a NullReferenceException, probably only occuring in MVC5 contributed by Jens Theisen (jtheisen)
- #123 - Rename WithoutLabel to WithoutLabelElement and deprecate it contributed by (zabulus)
- #122 - Rename WithoutLabel to WithoutLabelElement and deprecate it
- #120 - Remove ReadOnlyConfiguration contributed by (zabulus)
- #119 - ReadOnlyConfiguration class is redundant
- #118 - WithoutInlineLabel implementation contributed by (zabulus)
- #117 - Fix datetime g format string contributed by (zabulus)
- #116 - Updating Twitter Bootstrap package to include Microsoft.AspNet.Web.Optim... contributed by Rob Moore (robdmoore)
- #115 - TwitterBootstrap3 package should Install-Package Microsoft.AspNet.Web.Optimization
- #114 - WithoutLabel method does not affect boolean field generation contributed by (zabulus)
- #111 - Remove IFormTemplate contributed by (zabulus)
- #105 - Why was the TTemplate generic argument added to classes in library?
- #103 - Checkboxes are not displaying correctly since Bootstrap v3.2
- #100 - When installing ChameleonForms.TwitterBootstrap3 it uses an old version of ChameleonForms
You can now add classes to the container around a field via the new
AddFieldContainerClass method on
IFieldConfiguration as documented here: https://github.com/MRCollective/ChameleonForms/wiki/field-configuration. The result on the HTML in the default templates that ChameleonForms comes with is documented here: https://github.com/MRCollective/ChameleonForms/wiki/field#default-html.