Is there any way to get refresh just refresh the data rather than calling the action class? or at the minimum prevent 'refresh' on the page?
No. The "Refresh" functionality of the Internet Explorer Web browser cannot be altered or suppressed.
To handle your problem, you need to code the application to not insert identical data into the database. So, if user hits refresh, the application will not process the same data twice.
Alternatively, you can try and fiddle with the page cache of the browser. But, take note that there is no guaranteed method and you'll find conflicting information on how to not cache a page in a specific browser.
The best bet is my first suggestion. Good luck!