ASP.Net MVC路由/使用动态操作

时间:2013-08-20 00:09:27

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

好的,我正在尝试构建一个具有以下操作方法的控制器

public ActionResult ExecuteStep_1a
public ActionResult ExecuteStep_1b
public ActionResult ExecuteStep_2

等等...

有没有办法定义使用连接到操作名称的get参数的路由?例如,URL将是/ step / ExecuteStep_1a。我尝试定义URL等于的路由:

{controller}/{action}_{number}

没有成功。我再次尝试了一些其他的排列而没有结果。如果有人能指出我正确的方向,我会很感激。哦,我设置的行为等于ExecuteResult_的默认值,如果这增加了我的解释。

1 个答案:

答案 0 :(得分:1)

您可以使用root操作,他们使用这样的反射:

{controller}/{action}/{step}

public ActionResult ExecuteStep(string step){
   try {
      Type thisType = this.GetType();
      MethodInfo theMethod = thisType.GetMethod("ExecuteStep_" + step);
      return theMethod.Invoke(this, null);
   }
   catch {}
}

但如果您使用Reflection,则会有一些速度限制。