An enumeration literal (rather than the current value of a variable of that enumeration type) is a constant.
There is a specific sense of the word "generic" in .NET and a general sense in English. I don't understand what this has to do with either.
Based on the quasi-Hungarian name I'm guessing that strPageMode is a string (please tell me you don't really name variables like that in C# code). Considering switch as a sort of syntactic sugar for a set of if-else statements, this means you are doing an equality comparison between a string and an enum. If this were allowed it would be rather pointless, as the string being a string and the enum being an enum, they are inherently never going to be equal whatever their values are.
You need to either parse the string into a ModesEnum value, and use that in the switch statement, or else make the case values strings with ModesEnum.SystemHealth.ToString().