ASP.NET MVC 5动态控制器路由

时间:2016-03-08 06:58:04

标签: c# asp.net asp.net-mvc asp.net-mvc-5

我正在挑战找出动态定义基于分层的路线的最佳方法。

我希望实现类似于下面的数据库驱动链接:

/Illinois/
/Illinois/Chicago/
/Illinois/Chicago/Id
/California/
/California/Los-Angeles/
/California/Los-Angeles/Id
/New-York/
/New-York/New-York-City/
/New-York/New-York-City/Id

依此类推,我不想为每个州定义一个控制器,但如果它是“正确的方式”,我不会100%反对。

1 个答案:

答案 0 :(得分:2)

您可以创建一个类似HomeController的控制器,并使用此控制器顶部的路由属性和相关操作来隐藏路径网址,并在路线中调用您的位置和ID,如下所示:

[RoutePrefix("")]
public class HomeController : Controller
{
    Route("{state?}/{city?}/{id?}")
    public ActionResult Index(string state, string city, int id)
    {
        //your codes
        return View();
    }
}