I received a flier in the mail the other day from this younger-looking guy running for city council; I've removed his face for his privacy.
I see this sort of thing all the time, and for the life of me, I cannot understand where so many younger men have gotten the idea that "dress" shirts are supposed to be in colors like red, black, or navy blue.
In classic dressing, your dress shirt should basically always be lighter than your suit (I'll make an exception for white or off-white summer suits, where it's impossible for the shirt to be lighter, and a white shirt would probably look too dull). Yes, red is lighter than black, but red isn't a dress shirt color. Period.
Solid white shirts are the classiest and are always right. This sensibility comes from the 19th century, when shirts were expensive both to buy and to launder, so only the wealthy could afford enough white shirts to wear a clean one everyday and to wash them frequently. White shirts should always be worn to important events like weddings, funerals and job interviews. I would probably always wear one for a political campaign too, because it's basically a months-long job interview.
Some more sophisticated dressers argue that solid white shirts generally shouldn't be worn as everyday (non special occasion) attire because they look too stark in the sunlight. It's a worthwhile point to consider; leave it to your personal taste and to the wishes of your employer.
Colored dress shirts should always be very pale. This also comes from the 19th century, when the technology to dye shirts in a pale, even shade was far more expensive than to dye it in a darker, harsher shade, which also hid uneven dying better. Like with white shirts, the laundry issue was also a factor, as only the wealthy could afford to have lighter shirts that had to be washed frequently.
The most correct color after solid white is solid light blue. Ecru (basically an eggshell, off-white with a slight beige tint) is fine too, as is very light gray (basically the same as ecru: an off-white with a slight gray tint). Pale pink or pale yellow are good too, especially in the summer. That's basically the list of acceptable dress shirt colors.
Stripes are fine, but are less formal than solids. The narrower the stripe, the more formal the shirt. For colors, the most formal are on a white ground, with the most formal stripes being navy or burgundy; a lighter blue or red is also fine, just less formal, as are brown, gray, yellow, or pink stripes. Other acceptable background colors, all less formal than white, are the same as for solid shirts.
Dress shirts should also have a flat, matte finish; the hideous ones in dark colors are almost invariably also shiny. This is another holdover from the 19th century, when only expensive shirts were matte, while cheap ones were always shiny.
It's true that it's no longer the 19th century, but it doesn't matter; even though the technology has evolved to where pale, matte shirts are often cheaper than dark, shiny ones (which just goes to show how poor the taste is of those who choose the latter), the lower-class associations of dark, shiny shirts remain in the public's subconscious.
Real dress shirts are pale.