This is a correct way to do it, when you combine it with localized resources. I have implemented globalization the same way on my website (vocableman.com). You can use user browser's preferences to set the right language, that user prefers to use.
EDIT: Maybe I didn't understand you correctly. You should better offer the user an option on the website to easily switch to another language. In ASP.NET MVC you can maintain user's selected language as first part of the relative path - e.g. example.com/en/Home. This way you can always know that the user has selected a language and can generate urls on the page accordingly. Of course, the first time user visits the root page (e.g. example.com/) you should guess his preference and redirect him to the version that his browser states as prefered.