我在做一个第三接口的开发,对方发给我的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"];
有其他更好的方法吗?
已辞职 就这样吧
context.MapRoute(
"CreateOrder",
"Order/{code}?action={action}",
new { controller = "Order", action = "Create" }
); url中没有给action
这个不可以的
System.ArgumentException:“路由 URL 不能以“/”或“~”字符开头,并且不能包含“?”字符。
Arg_ParamName_Name”
@山寨程序员: 我记得我这样用过,不知道错哪了。你这个context是什么,我看RouteCollectionExtensions里面抛出的异常只有url未null的异常。
最简单就是通过QueryString来获取。也可以继承FilterAttribute自己写个过滤器,当然内部也只能通过QueryString获取到值然后在赋值给action参数。
web api没有这个问题
c辞职神速啊