Banish your shame: Sexually objectifying Zac Efron is the entire point of The Lucky One.
The kid from High School Musical is all grown up (he's 24), so go ahead and ogle. That's professional advice, because the film has lovely views but not much else.
In this Nicholas Sparks adaptation, Efron plays Logan, a Marine who is saved when he picks up a photo in the debris after an Iraqi firefight, seconds before a mortar explodes where he had just been sitting. Deciding that the pictured woman is his lucky charm, he sets out to find her. She's Beth (Taylor Schilling), a Louisiana mom who hires Logan to help with her dog kennel business.
Most of what transpires next is thin soup, with Logan befriending Beth's mildly saucy grandma Ellie (Blythe Danner) and crossing her cartoonishly evil ex Keith (Jay R. Ferguson). Of course he literally charms the pants off Beth, and the two do a fine job of steaming up the screen (even if she looks a decade older than him).
If there's a quibble – well, apart from the wan plot and paper-thin characters – it's that there's not enough adult action. As cinematic sexual awakenings go, PG-13 is far too tame.