Very nice and elegant. The only problem? I see with this approach might be in multilingual solutions or similar. "value" is displayed on the button (the label) and perhaps also used programatically in code (@if(action = "Draft"; ...) this means that we need to have localized code in the backend or a "dynamic" variable to test against. It might also be a bit messy if you want to enter something longer than just a word as value or decides to rename some of the buttons for example: from "Add to Shopping Cart" to "Add"
Very nice and elegant. The only problem? I see with this approach might be in multilingual solutions or similar. "value" is displayed on the button (the label) and perhaps also used programatically in code (@if(action = "Draft"; ...) this means that we need to have localized code in the backend or a "dynamic" variable to test against. It might also be a bit messy if you want to enter something longer than just a word as value or decides to rename some of the buttons for example: from "Add to Shopping Cart" to "Add"
(as Marcin mentioned)
...but its indeed a very clean solution.