O kadar cok cozumu var ki bunun hangisi aklina yatarsa onu yapabilirsin.
1- Yukarida soyledigimi soyle kullanirsin:
routes.MapRoute(null, "{yazi}", new { controller = "Entries", action = "Show" }));
routesini yazarak IModelBinderdan tureyen bir adet custom model binder yaparsin. Buna yazi stringini verip, sayfanin gercek adresini alarak default.aspx?y=1 deki "y" degerini cekersin once. Daha sonra o id'deki yazi modelini dondurursun.
Kod olarak oldukca basit aslinda ama yazamazsan yardimci olurum.
2- Application_BeginRequest'i aynen mvcde kullanabilirsin. Rewritepath, Route'lerden once calisiyorsa sorun cikmaz. Bununla birlikte Dbdeki kayitlarin default.aspx?y=1 seklinde oldugu icin soyle bir route eklemelisin:
routes.MapRoute(null, "default.aspx?y={yazi}", new { controller = "Entries", action = "Show" }));
3- Route Register'de dbdeki tum kayitlari route entry olarak ekleyebilirsin.
public static void RegisterRoutes(RouteCollection routes)
{
RouteHelper.RegisterRoutesFromDB(routes);
RegisterRoutesFromDB, veritabanindaki gercek-sanal adres eslestirmelerini alarak routelere bunu ekleyecek.