C# ASP.NET MVC 3路由参数问题

C# ASP.NET MVC 3路由参数问题,c#,asp.net,asp.net-mvc-3,routes,C#,Asp.net,Asp.net Mvc 3,Routes,我有一个桌面系统,它调用一个PHP脚本(script.PHP),我向这个脚本(例如:script.PHP?x=123)发送一个名为“x”的参数,但是现在PHP脚本正在ASP.NET/MVC中重写,但是我无法更改桌面系统,然后我创建了一个如下的路由: routes.MapRoute("ScriptPHP", "myscript/script.php", new { controller = "MyController", action = "MyAction", x = UrlPa

我有一个桌面系统,它调用一个PHP脚本(script.PHP),我向这个脚本(例如:script.PHP?x=123)发送一个名为“x”的参数,但是现在PHP脚本正在ASP.NET/MVC中重写,但是我无法更改桌面系统,然后我创建了一个如下的路由:

routes.MapRoute("ScriptPHP",
    "myscript/script.php",
    new { controller = "MyController", action = "MyAction", x = UrlParameter.Optional }
);
问题是:MyAction接收一个名为“id”的参数(
MyAction(int-id)
),并且只有在我调用“script.php?id=123”时,此路由才能工作

如何发送参数“x”,并将此路由“x”转换为“id”参数名?有可能吗


注意:我无法更改操作参数。

请查看。您可能可以将其扩展到别名查询参数。

您需要将操作方法更改为以下内容

public ActionResult MyAction(int x)
{

}

一旦你这样做了,它就会像你期望的那样工作。

谢谢@Mrchief,但这是一个非常难看的解决方案,但是谢谢你的回复。谢谢,但是我不能更改参数,但是你的回复让我敞开了心扉,我将只为这条路线创建一个新的操作,谢谢。我不敢相信我以前没有想过,有时候我们会为简单的事情寻找困难的解决方案。