1

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

public ActionResult ExecuteStep_1a
public ActionResult ExecuteStep_1b
public ActionResult ExecuteStep_2

ETC...

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

{controller}/{action}_{number}

没有成功。我再次尝试了其他一些排列,但没有结果。如果有人能指出我正确的方向,我将不胜感激。哦,如果这增加了我的解释,我将操作设置为 ExecuteResult_ 与默认值。

4

1 回答 1

1

您可以使用 root Action 并且他们使用这样的反射:

{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 {}
}

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

于 2013-08-20T08:20:04.320 回答