I understand that the AntiForgeryToken feature in ASP.NET MVC does prevent cross-site attacks.
However, does it prevent from changing form values before POST?
For example, a malicious attacker may find out that the rating page always contains a hidden field contaning the rated entity ID and create POST requests to artificially rate all his own entities high.
What is the preferred way to ensure that the form values between a GET and a POST have not been changed?