代码之家  ›  专栏  ›  技术社区  ›  Tony Basallo

ActionLink/RouteLink基于URL而不是控制器

  •  0
  • Tony Basallo  · 技术社区  · 14 年前

    我有一个控制器,它使用以下结构:

    .com/Object/375
    

    但是,当我访问特殊管理权限时,也可以使用以下URL

    .com/Admin/Object/375
    

    无论您是否在管理部分,我都使用相同的用户控件,但它们都指向同一个控制器 . 我需要这些链接来维护这个URL结构,而不是试图将管理员用户踢回对象控制器。我当前正在使用route name方法,其中这些是我的路由名称(在global.asax中):

    "Admin/-Object"
    "Object/-Object"
    "Object-Object"
    

    这些路由名称捕获以下路由:

    Admin/Object, Admin/Object/555, Object, Object/323
    

    Html.RouteLink(id, Request.Url.Segments[1] + "-Object", new { id = id })
    

    这工作很好,但有一种奇怪的气味-还有其他想法吗?

    1 回复  |  直到 14 年前
        1
  •  0
  •   Tony Basallo    13 年前

    总结一下,使用ViewBag可能是一个更好的主意,因为使用URL段可能会导致意外错误,特别是如果您移动控件或视图。