【问题标题】:MVC routing for parent child relationships父子关系的 MVC 路由
【发布时间】:2009-12-27 04:55:34
【问题描述】:

我正在构建一个 APS.net MVC 2 应用程序,其中有一个父表和一个子表。

我已经为父表构建了控制器、视图和模型,因此我可以添加、编辑、查看详细信息并从父表中检测记录。

我使用以下路由来做到这一点:

routes.MapRoute(
                "Default",                                              // Route name
                "{controller}/{action}/{id}",                           // URL with parameters
                new { controller = "Parent", action = "List", id = "" }  // Parameter defaults

此设置允许我在我的应用中使用以下网址:

列出所有父记录: /Parent/List
查看详细信息 特定的父记录: /Parent/Details/
编辑 特定的父记录: /父/编辑/


现在每个父记录都有一个子表。这个的标准路由是什么?

列出应用程序的子记录 具体家长: 父//子/列表
查看 特定子记录的详细信息: 子项/详细信息/
编辑 具体子记录:Child/Edit/

看起来对吗?我将如何设置 MapRoute?

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-routing


    【解决方案1】:

    对于列表中的第 2 项和第 3 项,如果您有一个子控制器,您当前的路线就可以了。

    To list app child records for a specific parent: Parent/< ID>/Child/List 
    To view details for a specific child record: Child/Details/< ID> 
    To edit a specific child record: Child/Edit/< ID>
    

    对于第一项,只需创建一条新路线

    routes.MapRoute(
     "ParentWithChild", 
     "{parent}/{id}/Child/List", 
     new { controller = "Child", action = "ChildList", id = "", parent=""} 
    

    我假设您想使用子控制器并将创建一个名为 ChildList 的新操作方法

    签名是这样的

    public ActionResult ChildList(string parent, string id)
    

    如果“父母”是单词父母而不是名字,那么路线将是

     "Parent/{id}/Child/List",
    

    签名是

    public ActionResult ChildList(string id)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-29
      • 2019-07-20
      • 1970-01-01
      • 1970-01-01
      • 2017-05-02
      • 2019-01-28
      • 1970-01-01
      相关资源
      最近更新 更多