C# 布线可以';参数使用不同的ID名称时找不到ID

C# 布线可以';参数使用不同的ID名称时找不到ID,c#,asp.net,routing,C#,Asp.net,Routing,我有如下URL路径: http://website.com/myController/myAction/123456 然而,我有时也有这样的要求: http://website.com/myController/myAction/?myID=123456 这会导致问题,因为ASP.NET正在查找ID,但我的参数名为myID。我不能改名字。我能解决这个问题吗 如果ID为空,我尝试重新路由: Server.Transfer("/myController/myAction/123456"); 但

我有如下URL路径:

http://website.com/myController/myAction/123456
然而,我有时也有这样的要求:

http://website.com/myController/myAction/?myID=123456
这会导致问题,因为ASP.NET正在查找ID,但我的参数名为myID。我不能改名字。我能解决这个问题吗

如果ID为空,我尝试重新路由:

Server.Transfer("/myController/myAction/123456");
但这不起作用,我得到了错误:

{"Error executing child request for /myController/myAction/123456."}

id转换过滤器可以将myID转换为id,因此请求
http://website.com/myController/myAction?myID=123456
将转换为
http://website.com/myController/myAction/123456
通过此ActionFilter

public class IdConversionFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        if (filterContext.HttpContext.Request.QueryString["myID"] != null)
        {
            filterContext.ActionParameters.Clear();
            filterContext.ActionParameters.Add("id", Convert.ToInt32(filterContext.HttpContext.Request.QueryString["myID"]));
        }
    }
} 
用IdConversionFilter装饰myAction

[IdConversionFilter]
public ActionResult myAction(int id)
{
     return View();
}

HttpModule或global.asax中的一个处理程序可能很方便。您可以提供一个在global.asax中如何设置的示例吗?因为我需要将参数myID转换为ID