c# - MVC3 Route/redirect problem -


my application multilingual , wrote following route in order handle languages:

routes.maproute(             "default", // route name             "{language}/{controller}/{action}/{id}", // url parameters             new { controller = "home", action = "index",                 language = "pt", id = urlparameter.optional }, // parameter defaults             new { language = @"(pt)|(es)|(en)" }         ); 

this works domain.com , domain.com/pt/home/index. however, if type domain.com/home/index fails (404).

the desired behavior being redirected domain.com/pt/home/index (pt default language).

whats best way achieve this? i've been reading lot routes , actionfilters nothing seems quite right.

i suggest using custom route handler following

public class languageroutehandler : iroutehandler     {         public ihttphandler gethttphandler(requestcontext requestcontext)         {             iroutehandler handler = new mvcroutehandler();             var vals = requestcontext.routedata.values;             if(vals["language"] == null)             {                 vals["language"] = "pt";              }             return handler.gethttphandler(requestcontext);         }     } 

and have route without language route value , set route handler (global.asax)

routes.maproute(             "default2", // route name             "{controller}/{action}/{id}", // url parameters             new { controller = "home", action = "index", id = urlparameter.optional } // parameter defaults         ).routehandler = new languageroutehandler(); 

this not redirect home/index pt/home/index yet provide language = "pt" index action method (and others). if want redirect can implement actionfilter redirecting create problems post requests. example when post form /home/index , suppose redirected action filter, redirected request lose posted form data


Comments

Popular posts from this blog

c# - SharpSVN - How to get the previous revision? -

c++ - Is it possible to compile a VST on linux? -

url - Querystring manipulation of email Address in PHP -