HomeControler/Index.cshtml page is as below
You can check ipn on your localhost. You need to set up your router to accept and redirect incoming calls to your localhost. Then go to paypal.sandbox. Using their tools you can mimic different IPN responses to your localhost(of course using your outside Ip address).
In this way, sandbox sends tcp/Ip messages to your machine, your router redirects it to your machine which is hosting the test website.
It is best not to try to send a message to sandbox and expect to receive and capture the response back. It is not that sandbox is not working correctly. It is.
The problem is if sandbox responds quickly then your test machine(whilst in debug mode) may not be fast enough to capture the return tcp/ip packet. You could use another machine to start a transaction on your localhost website. i.e. decoupling test transaction path.
Hope this helps.