首页新闻找找看学习计划

mvc查询字符串中包含action?

0
悬赏园豆:100 [已解决问题] 解决于 2018-04-23 11:37

我在做一个第三接口的开发,对方发给我的url类似:/order/1001?action=order

我需要把它映射到Order控制器的Create方法中

context.MapRoute(
"CreateOrder",
"Order/{code}",
new { controller = "Order", action = "Create" }
);

Create方法如下:

public ActionResult Create(string code,string action)

Create方法的参数action的值,我希望是查询字符串中action的值,但是现在的得到的值都是"Create",有什么办法可以使action的值自动取查询字符串对应的值。

我现在是这个做的:

action = this.HttpContext.Request.QueryString["action"];

有其他更好的方法吗?

山寨程序员的主页 山寨程序员 | 初学一级 | 园豆:71
提问于:2018-04-02 13:34
< >
分享
最佳答案
0

已辞职 就这样吧

山寨程序员 | 初学一级 |园豆:71 | 2018-04-23 11:36
其他回答(3)
0

context.MapRoute(
"CreateOrder",
"Order/{code}?action={action}",
new { controller = "Order", action = "Create" }
); url中没有给action

授之以渔 | 园豆:872 (小虾三级) | 2018-04-02 14:20

这个不可以的

System.ArgumentException:“路由 URL 不能以“/”或“~”字符开头,并且不能包含“?”字符。
Arg_ParamName_Name”

支持(0) 反对(0) 山寨程序员 | 园豆:71 (初学一级) | 2018-04-02 14:37

@山寨程序员: 我记得我这样用过,不知道错哪了。你这个context是什么,我看RouteCollectionExtensions里面抛出的异常只有url未null的异常。

支持(0) 反对(0) 授之以渔 | 园豆:872 (小虾三级) | 2018-04-02 15:18
0

最简单就是通过QueryString来获取。也可以继承FilterAttribute自己写个过滤器,当然内部也只能通过QueryString获取到值然后在赋值给action参数。

web api没有这个问题

收获园豆:100
jio92 | 园豆:1064 (小虾三级) | 2018-04-04 15:24
0

c辞职神速啊

_York | 园豆:2 (初学一级) | 2018-04-23 17:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册