By using 301 redirects your site won't be search engine friendly. 301s will help you transfer pagerank from existing pages to new ones. But if the new URLs are in the form of index.asp?a=this&b=that&z=blah, then google won't be that happy.
So if you currently have structured URLs you better keep your existing urls by doing internal URL rewriting such as
/this/that/blah.htm to /index.asp?a=this&b=that&z=blah
or if no strucured URLs exist, create a new structured URL schema, redirect old urls to new structured ones, and rewrite the structured ones to the real .asp url. For example:
Redirect /goofy.htm to /this/that/blah.htm
and
Rewrite /this/that/blah.htm to /index.asp?a=this&b=that&z=blah
This way both your visitors and google will be happy. The most effective way to do such rewriting/redirection stuff is using a tool like Apache mod_rewrite and .htaccess. The best tool I know for IIS is
IIS Mod-Rewrite Pro, but you can also find more tools at
this wikipedia entry. All you need is a script like this:
RewriteEngine On
RewriteRule ^goofy.htm$ /this/that/blah.htm [R=301,L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)\.htm$ /index.asp?a=$1&b=$2&z=$3 [L]
But for god's sake don't use meta refresh tags or client side scripts if you want to save your precious existing pagerank.