【问题标题】:ASP.NET MVC 3 Route parameter problemASP.NET MVC 3 路由参数问题
【发布时间】:2023-03-14 03:14:01
【问题描述】:

我有一个调用 PHP 脚本 (script.php) 的桌面系统,我向该脚本发送了一个由“x”调用的参数(例如:script.php?x=123),但现在 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”参数名称?有可能吗?

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

【问题讨论】:

    标签: c# asp.net asp.net-mvc-3 routes


    【解决方案1】:

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

    public ActionResult MyAction(int x)
    {
    
    }
    

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

    【讨论】:

    • 谢谢,但我无法更改参数,但您的回复让我大开眼界,我将仅为这条路线创建一个新操作,谢谢。我不敢相信我以前没有想到它,有时我们为简单的事情寻求艰难的解决方案。
    【解决方案2】:

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

    【讨论】:

    • 感谢@Mrchief,但这是一个非常丑陋的解决方案,但感谢您的回复。
    猜你喜欢
    • 2011-08-22
    • 1970-01-01
    • 2011-10-16
    • 2023-01-25
    • 2011-07-03
    • 2011-09-14
    • 1970-01-01
    相关资源
    最近更新 更多