Basically don't put anything wet on them unless you're going to eat it very soon. I make sandwiches for lunch the night before. First I put butter on the bread because the oil in the butter puts up a barrier to the bread absorbing any wetness.
Then I put on the sliced meat and cheese and put it in a baggie. I put the lettuce and sliced tomato in another baggie along with a packet of mayo and mustard so we can assemble the sandwich at lunch the next day. This keeps the bread from getting soggy and the lettuce and tomato from getting wilted and sad.
I buy the packets of mayo and mustard from a local convenience store for a pretty reasonable price. We save the baggies and reuse them daily for one week so we don't throw away quite as much plastic as if we used new ones daily.
Butter the bread.
put lettuce next to bread and other filling in the middle. dont use tomato at all
wrap the veggies in one sandwich bag
wrap the meat in one sandwich bag
wrap the bread in one sandwich bag
at lunch time unwrap and put your sandwich together.
Place condiments between the meat and cheese so they do not make the bread soggy.
If the sandwich is just a simple PB&J smear both pieces of bread with peanut butter the jelly goes on the peanut butter and when you put the two together the jelly is encased in peanut butter so it does not soak through.
If you use lettuce pat it dry and that can be a barrier of sorts against a wetter meat like ham.
If you really want the sandwich dry and you can do it wrap the meat, cheese and other items separate from the bread. Wrap the bread and assemble when you have lunch. Start saving the little packs of mustard, mayo and relish and bring them along.
Toast the bread
use semen instead of mayonnaise
Put them in the oven at 325 deg (F) for 45 min.
by keeping vegetables and condiments on the side until it's time to eat.
By not putting soggy food in them!
Or, at least, laying the soggy prone food between not so prone soggy food, so that they are close to the bread.