【发布时间】:2017-10-09 14:58:45
【问题描述】:
我想做一个简单带有路由的多语言网络应用。
我想做的是在网址中: zh/产品和 它/产品 用同样的动作。
我用相同的动作/控制器创建了两条不同的路线:
routes.MapRoute(
name: "english",
template: "en/products",
defaults: new { controller = "home", action = "products" }
);
routes.MapRoute(
name: "italiano",
template: "it/prodotti",
defaults: new { controller = "home", action = "products" }
);
当我想调用我使用的这些路线之一时:
<a href="@Url.RouteUrl("english", new { Action = "home", Controller = "products"})">Products</a>
<a href="@Url.RouteUrl("italiano", new { Action = "home", Controller = "products"})">Prodotti</a>
我得到网址 en/products 或 它/产品
问题是,当我想发布表单时,我无法控制要返回哪个 url。
<form asp-action="products" method="post">
此仅返回我的路线的第一个值。
问题是,当我像使用 Url.RouteUrl 链接一样发送表单时,如何控制我的路由?
我试过了,但这也不起作用:
[Route("it/prodotti")]
[Route("en/products")]
public ViewResutl products() {
...
return View(new viewmodel...);
}
【问题讨论】:
标签: c# asp.net-core routes asp.net-core-mvc