In a strange quirk, the National League is going to host the All-Star Game in back-to-back years after doing so in Miami last year. Of course, Nationals Park is the Nationals' home field, and the Nationals are a National League team. So it would be fair to ask yourself: Why in the world wouldn't the National League be the home team for the 2018 All-Star Game?
The answer is simple, and really only comes down to fairness: An NL ballpark has hosted every All-Star Game since 2015, when the Minnesota Twins hosted at Target Field. Since then, it's been at Great American Ballpark in Cincinnati, Petco Park in San Diego, Marlins Park in Miami and, now, Nationals Park in Washington D.C. Next season, Progressive Field in Cleveland will host, before the game heads to Los Angeles in Dodger Stadium. In 2016, despite being played at Petco Park, the AL was the home team.
Basically, MLB generally wants to alternate years. While Nationals Park houses the Washington Nationals, it wouldn't be home to the National League on Tuesday if the Indians weren't hosting next season and the Dodgers the year after that. After this season, there should be at least some return to normalcy for the host teams.
MLB isn't assigning hosting duties based on what would give fair representation. Both teams will have plenty of fans. However, there's no question that there are strange quirks to how MLB determines home vs. away.