The layers of social constructs, bad influences, personal prejudice, and just plain stubbornness make it difficult to teach general concepts like honor, duty, loyalty, piety etc. in a bald factual way. Lewis thought of all those frustrating influences as dragons by the wayside.
"Fairy stories" or fantasy or adventure stories of the best kind (I'm thinking "Treasure Island") smuggle those concepts "past the watchful dragons."
Of course Lewis' Narnia books and (for older kids) "The Great Divorce" and "Til We Have Faces" and the Space Trilogy. George MacDonald's wonderful fairy stories. Robert Lewis Stevenson's adventure stories ("Kidnapped" and "David Balfour" are two more - the latter has a great deal to say about maintaining ones honor in the face of evil politics). And I'll put in a plug for the mildly off-center (but always beautiful) worlds of Lafcadio Hearn and Donn Byrne.
My personal vote goes for Tolkien. No overt preaching like Lewis, but IMO much more effective for that very reason.