好的,我正在尝试构建一个具有以下操作方法的控制器
public ActionResult ExecuteStep_1a
public ActionResult ExecuteStep_1b
public ActionResult ExecuteStep_2
等等...
有没有办法定义使用连接到操作名称的get参数的路由?例如,URL将是/ step / ExecuteStep_1a。我尝试定义URL等于的路由:
{controller}/{action}_{number}
没有成功。我再次尝试了一些其他的排列而没有结果。如果有人能指出我正确的方向,我会很感激。哦,我设置的行为等于ExecuteResult_的默认值,如果这增加了我的解释。
答案 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,则会有一些速度限制。