C# ASP.NET核心中的自定义路由

C# ASP.NET核心中的自定义路由,c#,asp.net-mvc,asp.net-core,C#,Asp.net Mvc,Asp.net Core,我知道大多数asp.net路由的定义如下所示 myweb.com/products/{name}/{id}/{title} 但是,我正在尝试设置自定义URL路由,模式如下 mywebsite.com/{name}/{id}/{title} 这三个参数都是必需的,都是动态的。NETMVC有没有办法通过控制器来处理这种模式 有人能帮忙吗? 谢谢只需将您的图案添加到路线列表中: app.UseMvc(routes => { routes.MapRout

我知道大多数asp.net路由的定义如下所示

myweb.com/products/{name}/{id}/{title}
但是,我正在尝试设置自定义URL路由,模式如下

mywebsite.com/{name}/{id}/{title}
这三个参数都是必需的,都是动态的。NETMVC有没有办法通过控制器来处理这种模式

有人能帮忙吗?
谢谢

只需将您的图案添加到路线列表中:

app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "custom",
                template: "{controller}/{name}/{id}/{title}");
        });
请注意,添加管线的顺序很重要。尽量不要将此路由放在另一个可以捕获预期URL的路由之下。

您的模式应如下所示
默认值:新建{controller=controller name,action=controller的action name,id=urlparmeter.Optional}

很抱歉,我不理解路由列表的模式,您的示例缺少{name}参数。还有,我如何告诉它使用哪个控制器查看更新,在默认启动路径之前将此代码放入Configure方法中。cstried,但它似乎不起作用。我已经尝试了很多其他的东西,包括app.UseMvcroutes=>{routes.MapRoute name:custom,template:{controller=Handler}/{name}/{id}/{title};};当你指定路线时,你应该为你的所有动作提供名称、id和标题作为输入参数。这太奇怪了,你只是复制了我的答案,然后被标记了@ElyasEsna如果你仔细看,你会发现我提供的答案与你的略有不同-
routes.MapRoute(
       name: "custom",
       template: "{name}/{id}/{title}",
       defaults: new { controller = "Products" });