【问题标题】:Implementing Routes for dynamic actions in MVC 4.0在 MVC 4.0 中为动态操作实现路由
【发布时间】:2014-09-10 12:13:31
【问题描述】:

是否可以在MVC中定义一个路由,根据路由的一部分动态解析动作?

public class PersonalController
{
  public ActionResult FriendGroup()
  {
      //code
  }

  public ActionResult RelativeGroup()
  {
      //code
  }

  public ActionResult GirlFriendGroup()
  {
      //code
  }
}

我想为下面的组操作方法实现路由

Url: www.ParlaGroups.com/FriendGroup
     www.ParlaGroups.com/RelativeGroup
     www.ParlaGroups.com/GirlFriendGroup

routes.MapRoute(
    "Friends",
    "/Personal/{Friend}Group",
    new { controller = "Personal", action = "{Friend}Group" }
);
routes.MapRoute(
    "Friends",
    "/Personal/{Relative}Group",
    new { controller = "Personal", action = "{Relative}Group" }
);
routes.MapRoute(
    "Friends",
    "/Personal/{GirlFriend}Group",
    new { controller = "Personal", action = "{GirlFriend}Group" }
);

上面的路由实现怎么做?

【问题讨论】:

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


【解决方案1】:

以下路由将允许 MVC 使用 Url 的第二部分来确定 ActionResult:

routes.MapRoute(
"Friends",
"Personal/{action}",
new { controller = "Personal" }
);

以下网址将匹配:

www.ParlaGroups.com/Personal/FriendGroup 其中“FriendGroup”是 ActionResult www.ParlaGroups.com/Personal/RelativeGroup 其中“RelativeGroup”是 ActionResult www.ParlaGroups.com/Personal/GirlFriendGroup 其中“GirlFriendGroup”是 ActionResult

【讨论】:

  • 好的,我不再清楚你想要达到什么目的。您可以从您的操作结果方法的名称中删除“组”,并使用如下路线:routes.MapRoute( "Friends", "Personal/{action}Group", new { controller = "Personal" } );
【解决方案2】:
public class PersonalController
{
  public ActionResult FriendGroup()
  {
   //code
  }

  public ActionResult RelativeGroup()
  {
   //code
  }

  public ActionResult GirlFriendGroup()
  {
   //code
  }
}

 Url: www.ParlaGroups.com/FriendGroup
      www.ParlaGroups.com/RelativeGroup
      www.ParlaGroups.com/GirlFriendGroup


 routes.MapRoute(
  "Friends",
  "/{action}",
  new { controller = "Personal"}
 );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-04
    • 2023-03-28
    • 1970-01-01
    • 2010-09-22
    • 2015-10-17
    • 2014-06-04
    • 1970-01-01
    相关资源
    最近更新 更多