是否可以在MVC4中有一个名为action的参数
本文关键字:action 参数 有一个 MVC4 是否 | 更新日期: 2023-09-27 18:28:56
请标记为重复-此处已回答
MVC4中是否可以有一个名为action的参数?
尝试这样做会导致参数返回控制器操作的名称,而不是参数值。
/Somecontroller/Someaction?action=value
当我尝试访问参数action时,我得到的结果是"Someaction",而不是"value"。
尝试将参数绑定到其他名称也没有帮助。
public ActionResult Someaction([Bind(Prefix = "action")] String id)
编辑:我在保留的MVC关键字中也没有找到"Action"/"Action"。
我还没有测试过这一点,但我认为你可以尝试将默认路由的url更改为操作之外的其他内容
routes.MapRoute("Default", "{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional });
至
routes.MapRoute("Default", "{controller}/{cAction}/{id}",
new { controller = "Home", cAction = "Index", id = UrlParameter.Optional });
这将允许您在action中使用action作为参数。我不确定你为什么要这样做,我可能会建立一个接受我的操作的路由url,并将其作为类似于以下的url的一部分:
/SomeController/SomeAction/value
,其中value是您的"操作"参数。
根据评论编辑:
我成功地创建了一条通往aspx-url的路由的路由
routes.MapRoute(null, "third-party.aspx", new { controller = "Home", action = "Index" });
很明显,你可以在这里添加你想要的任何控制器/操作,以及你想在哪里处理它,然后你通过/third-party.aspx?action=value
访问该路由,它似乎对我有效