【发布时间】:2015-08-07 08:12:40
【问题描述】:
我正在处理国际化和长途路线。 我的网址看起来像 domain/en-us/users/edit/240。
这是我的 RouteConfig:
routes.MapRoute(
name: "DefaultWithCulture",
url: "{culture}/{controller}/{action}/{id}",
defaults: new { culture = CultureHelper.GetDefaultCulture(), controller = "Home", action = "Index", id = UrlParameter.Optional },
constraints: new { culture = "([a-zA-Z]{2}-[a-zA-Z]{2})|[a-zA-Z]{2}" }
);
routes.MapRoute(name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
这是我的控制器用户中的一些操作:
public ActionResult Edit(int id);
public ActionResult EditPassword(int id);
public ActionResult EditRights(int id);
我希望我的操作 EditPassword 和 EditRights 可以通过 domain/en-us/users/edit/password/240 和 访问em>domain/en-us/users/edit/rights/240.
我确实找到了一个解决方案,使用 Route Attributes 但在我的 url 中使用文化(en-us、es-mx、fr-ca),它打破了这一切。
【问题讨论】:
-
这与 Classic ASP 无关。
-
查看this answer 了解另一种本地化方法。
标签: asp.net-mvc model-view-controller routes internationalization asp.net-mvc-routing