C# 自定义路由在asp.net核心mvc中未命中?

C# 自定义路由在asp.net核心mvc中未命中?,c#,asp.net,asp.net-core-mvc,asp.net-mvc-routing,C#,Asp.net,Asp.net Core Mvc,Asp.net Mvc Routing,我有一个样本.net核心mvc应用程序,即时通讯测试SEO友好的url创建, 这是张贴的 我已经创建了帖子中的所有代码 我的测试控制器操作如下 public IActionResult Index(int id, string titl) { //string titl = ""; var viewModel = new FriendlyUrlViewModel() { Id = 1, Name = "Detail home vi

我有一个样本.net核心mvc应用程序,即时通讯测试SEO友好的url创建, 这是张贴的

我已经创建了帖子中的所有代码

我的测试控制器操作如下

 public IActionResult Index(int id, string titl)
        {
            //string titl = "";
            var viewModel = new FriendlyUrlViewModel() { Id = 1, Name = "Detail home view." };

            string friendlyTitle = FriendlyUrlHelper.GetFriendlyTitle(viewModel.Name);

            // Compare the title with the friendly title.
            if (!string.Equals(friendlyTitle, titl, StringComparison.Ordinal))
            {
                return RedirectToRoutePermanent("post_detail", new { id = viewModel.Id, title = friendlyTitle });
            }

            return View(viewModel);

        }
我已经在
startup.cs

 app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "post_detail",
                    template: "FriendlyUrl/index/{id}/{title}"
                ).MapRoute(
                        name: "default",
                        template: "{controller=Home}/{action=Index}/{id?}");

            });
当我导航到

https://xxxxx:2222/FriendlyUrl/index/2/dfdsfdsfds
浏览器不显示任何内容, 我认为问题在于定制路线,但我找不到, 有人能帮忙吗

谢谢。

您不必添加:

routes.MapRoute(
名称:“发布详细信息”,
模板:“FriendlyUrl/index/{id}/{title}”)
这适用于全局“控制器/操作”映射规则

相反,要将指定的路径映射到动作,请考虑添加这样的属性:

[路由(“FriendlyUrl/index/{id}/{title}”)]
公共IActionResult索引([FromRoute]int id,[FromRoute]字符串标题)
{
}
常见问题 如何使用路由名称重定向? 只需在路线中添加一个名称。像这样:

[Route(“FriendlyUrl/index/{id}/{title}”,Name=“post_detail”)]
公共IActionResult索引([FromRoute]int id,[FromRoute]字符串标题)
{
}
要从其他控制器或操作路由到此操作,请使用以下命令调用它:

//正在运行
返回重定向路由(“post_详细信息”);
//或
返回重定向路由永久(“post_详细信息”);
//我想你不必丢失“身份证”:
返回RedirectToRoutePermanent(“post_detail”,new{id=5});
如何允许接收空标题 只需向路线模板添加一个
。像这样:

[Route(“FriendlyUrl/index/{id}/{title?}”,Name=“post_detail”)]
公共IActionResult索引([FromRoute]int id,[FromRoute]字符串标题)
{
}

我已经试过了。但我有两个问题1.如何使用RedirectToRoutePermanent 2.接收null以title@Roshan请再核对一下答案。