更改项目名称的ASP.NET路由

更改项目名称的ASP.NET路由,.net,routing,seo,url-routing,.net,Routing,Seo,Url Routing,是否可以使用ASP.NET路由忽略url的最后一部分 e、 g./物品名称-x/123456/ 无论产品名称如何更改,我们希望始终通过在末尾添加文章id来指向同一篇文章,并使用该id指向正确的文章 我们有时会有一款产品在发布时还没有最终名称,所以我们需要在最终名称已知时进行更新。但是我们已经在通信中使用了初始url,我们不希望以后链接被破坏 有人能帮我吗?如果我正确理解了你的问题,你希望路线同时包含文章名和id 您可以在.net MVC中使用属性路由。传递名称和id作为路由中定义的路径参数。然后

是否可以使用ASP.NET路由忽略url的最后一部分

e、 g./物品名称-x/123456/

无论产品名称如何更改,我们希望始终通过在末尾添加文章id来指向同一篇文章,并使用该id指向正确的文章

我们有时会有一款产品在发布时还没有最终名称,所以我们需要在最终名称已知时进行更新。但是我们已经在通信中使用了初始url,我们不希望以后链接被破坏


有人能帮我吗?

如果我正确理解了你的问题,你希望路线同时包含文章名和id

您可以在
.net MVC
中使用
属性路由
。传递名称和id作为路由中定义的路径参数。然后在操作中,您可以使用其中任何一个(或两者)来搜索文章

首先允许在
RegisterRoutes
方法中进行属性路由

routes.MapMvcAttributeRoutes();
然后为您的操作定义一个
Route
属性

[RoutePrefix("articles")]
[Route("{action=index}")]
public class ArticlesController : Controller
{
    // e.g /articles
    public ActionResult Index() { … } 

    // e.g. /articles/my-article-name/my-article-id
    [Route("{name}/{id}")]
    public ActionResult Search(string name, string id) { … }
}
此操作可以称为

articles/my-article-name/my-article-id
详情请参阅


HTH.

属性路由似乎是解决方案,谢谢。在我们的例子中,它将是Search(stringid),名称可以更改为它想要的任何内容。例如,../article-name-x/123和../article-name abcdefge/123都应指向id为123的物品