मैं एएसपीएनटी एमवीसी 2 का उपयोग कर रहा हूं और मार्गों के आधार पर स्थानीयकरण बना रहा हूं।एएसपी.नेट एमवीसी Url.Action और मार्ग नाम मूल्य
- मेरे मार्ग लगता है:
{culture}/{controller}/{action}
- मैं अपने घर नियंत्रक पर जाएँ:
<a href='<%= Url.Action("Prods","Products") %>' >Products</a> <a href='<%= Url.Action("Index","About") %>' >About</a>
पहले लिंक: en/Home/Index
मेरे घर नियंत्रक दृश्य अन्य नियंत्रकों के लिए एक लिंक जेनरेट कोड: /en/Products/Prods
लेकिन दूसरा एक उत्पन्न करता है: /Home/Index
मुझे समझ में नहीं आ रहा है कि Url.Action
{culture}
रूट पैरामीटर को छोड़ देता है जब मैं तर्क कार्रवाई में Index
मानता हूं? मैं क्या गलत कर रहा हूं?
मार्ग विन्यास:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute("Login", // Route name
"{controller}/Index", // URL with parameters
new { controller = "Login", action = "Index" } // Parameter defaults
).RouteHandler = new SingleCultureMvcRouteHandler();
routes.MapRoute("Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
फिर
foreach (Route r in routes)
{
if (!(r.RouteHandler is SingleCultureMvcRouteHandler))
{
r.RouteHandler = new MultiCultureMvcRouteHandler();
r.Url = "{culture}/" + r.Url;
if (r.Defaults == null)
{
r.Defaults = new RouteValueDictionary();
}
r.Defaults.Add("culture", "en");
if (r.Constraints == null)
{
r.Constraints = new RouteValueDictionary();
}
r.Constraints.Add("culture", new CultureConstraint(cultures));
}
}
सभी के लिए धन्यवाद मदद
यदि आप अपनी पूर्ण मार्ग कॉन्फ़िगरेशन शामिल करते हैं तो समस्या को ढूंढना आसान है। –
@ João Angelo प्रतिक्रिया के लिए धन्यवाद कृपया –
@marc_s के लिए धन्यवाद, धन्यवाद, मैं इसे यहां सभी मार्गों के बाद जोड़ता हूं: r.Url = "{culture} /" + r.Url; –