首页 文章

父子关系的MVC路由

提问于
浏览
3

我正在构建一个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 / <ID>编辑特定父记录:/ Parent / Edit / <ID>

等等

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

列出特定父级的app子级记录:Parent / <ID> / Child / List查看特定子记录的详细信息:Child / Details / <ID>编辑特定子记录:Child / Edit / <ID>

那看起来不错吗?我将如何设置MapRoute?

1 回答

  • 4

    对于列表中的第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>
    

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

    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)
    

相关问题