asp.net-core-mvc - 如何在 mvc core 3.1 中的操作方法名称中允许多个连字符?
问题描述
我正在开发一个应用程序,其中要求以以下格式显示 url 以进行 seo。
Initial format = www.abc.com/Home/OnlineShoppingInUk
Required format = www.abc.com/online-shopping-in-uk
我已经在 start.cs 中进行了以下更改以从 url 中隐藏控制器名称,并且从 url 中删除了控制器名称
endpoints.MapControllerRoute(
name: "onlineShoppingInUk",
pattern: "onlineShoppingInUk",
defaults: new { controller = "Home", action = "onlineShoppingInUk" });
and in home controller
[Route("onlineShoppingInUk")]
public IActionResult OnlineShoppingInUk()
{
....
}
但是当 url 包含连字符时,上述方法不起作用。我尝试过以下但在线购物操作方法从不调用,而是调用索引方法。
endpoints.MapControllerRoute(
name: "online-shopping-in-uk",
pattern: "online-shopping-in-uk",
defaults: new { controller = "Home", action = "online-shopping-in-uk" });
在家庭控制器中
[Route("online-shopping-in-uk")]
public IActionResult OnlineShoppingInUk()
{
....
}
如何在 Home 控制器中调用包含连字符的操作方法?
解决方案
请使用以下代码更新您的路线配置。
endpoints.MapControllerRoute(
name: "OnlineShoppingInUK",
pattern: "/online-shopping-in-uk",
defaults: new { controller = "Home", action = "OnlineShoppingInUK" });
从您的方法中删除 Route :
public IActionResult OnlineShoppingInUK()
{
....
}
试试这个:
www.abc.com/online-shopping-in-uk
另外,您在哪里调用它只是使用
asp-route="OnlineShoppingInUK"
推荐阅读
- swift - 并发队列上的 DispatchSourceTimer
- common-lisp - 有人可以用一种简单的方法为初学者解释一下,比如蛮力方法吗?
- api - 是否可以通过 Waze API 从公司的 All Shuttle bus 获取实时 GPS 位置?
- python - PyTelegrambotApi — @callback_query_handler 不转向机器人的下一步
- ajax - 如何在 Laravel 中的过滤器后动态更改计数
- python - 遍历不同的文件夹
- javascript - 如何让我的反应日历过滤天数(根据用户输入更新第一个可用日期)
- azure-pipelines - 用于回调 InvokeRESTAPI Azure Pipeline 任务的参数
- python - 使用 Beautiful Soup 进行网页抓取时,我不断收到索引错误
- kubernetes - NACK (jetstream-controller) 未能更新消费者