Bar*_*tal 6 c# routes asp.net-core-mvc asp.net-core
我想用路线做一个简单的多语言网络应用程序.
我想要做的是在url: en/products和 它/ prodotti中 使用相同的操作.
我创建了两个具有相同动作/控制器的不同路由:
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" }
);
Run Code Online (Sandbox Code Playgroud)
当我想打电话给我使用的一条路线时:
<a href="@Url.RouteUrl("english", new { Action = "home", Controller = "products"})">Products</a>
<a href="@Url.RouteUrl("italiano", new { Action = "home", Controller = "products"})">Prodotti</a>
Run Code Online (Sandbox Code Playgroud)
我得到url en/products或者 它/ prodotti
问题是,当我想制作一个表格帖子时,我无法控制哪个网址会返回.
<form asp-action="products" method="post">
Run Code Online (Sandbox Code Playgroud)
这只能返回我的路线的第一个值.
问题是,当我发送一个像我正在使用Url.RouteUrl链接的表单时,如何控制我的路线?
我试过这个,但这也行不通:
[Route("it/prodotti")]
[Route("en/products")]
public ViewResutl products() {
...
return View(new viewmodel...);
}
Run Code Online (Sandbox Code Playgroud)
好消息,我终于找到了答案。
@using (Html.BeginRouteForm("routenamehere"))
{
<form>
...
...
</form>
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2902 次 |
| 最近记录: |