1

我正在使用 ASP.NET MVC 5 开发一个新项目。在许多很酷的网站上,您经常会看到这样的路线:

www.website.com/artist/vincent-van-gogh/wiki

www.website.com/artist/vincent-van-gogh/paintings

所以想象我有一个Artist看起来像这样的实体:

namespace BB.DOMAIN.Entities
{
    public class Artist
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }
}

我想通过 URL 中的属性查看任何给定艺术家的详细信息,.Name如上所示?

有没有一种方法可以在 ASP.NET MVC 中实现这一点,而无需创建数千条独特的路由?

4

1 回答 1

1

你会有这样的路线:

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{artistName}/{action}",
        defaults: new { controller = "Artist", action = "Index" }
    );

然后在你的ArtistController你会有一个像这样的动作:

public ActionResult Wiki(string artistName)
{
    var artist = MyContext.Artists.SingleOrDefault(x => x.Name == artistName);
    //now you have the artist you want.
}
于 2015-02-03T18:24:50.700 回答