![](/img/trans.png)
[英]How to automatically determine KnownNetworks for ASP.NET Core application running in Kubernetes with an in-cluster reverse proxy?
[英]How determine application route in asp.net core application?
我的startup.cs文件中有下一个代码:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "catalog",
template: "Catalog/{controller}/{action=Index}/{id?}");
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
当我点击我的链接时:
<a asp-controller="Products" asp-action="Index">Products</a>
应用程序使用名称为“catalog”的路由,但是我需要名称为“default”的路由。 这个怎么做? 请帮助。 抱歉我的英文不好=)
我建议稍微修改你的路由中间件:
您需要使用MapAreaRoute方法,该方法将告知区域名称和URL格式。
app.UseMvc(routes =>
{
routes.MapAreaRoute("catalog_route_name", "Catalog",
"Catalog/{controller}/{action}/{id?}");
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
然后,您需要在控制器上指定Area属性。
namespace MyApp.Namespace1
{
[Area("Catalog")]
public class ProductsController : Controller
{
public IActionResult AddProduct()
{
return View();
}
}
}
完成此更改后,您可以指定区域,如下所示:
<a asp-area="Catalog" asp-controller="Products" asp-action="Index">
Catalog/Products/Index
</a>
这肯定会奏效。
要使default
生效,您可以更改顺序
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
routes.MapRoute(
name: "catalog",
template: "Catalog/{controller}/{action=Index}/{id?}");
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.