【发布时间】:2014-07-29 11:15:40
【问题描述】:
我有以下方法:
public void Service(int id, string action)
当我将其作为 Url 访问时:
http://localhost/home/service?id=24&action=updated
MVC 将我的参数“action”设置为“service”(方法的名称),而不管我传递给参数的内容。
有没有办法覆盖 MVC 设置的这个“动作”参数(通过路由或任何属性)?
【问题讨论】:
-
最简单的方法是重命名参数,比如“actionName”。这是一个选项吗?
-
为了不破坏与以前版本的兼容性,我需要保留“动作”...除了重命名参数还有其他方法吗?
-
那么这曾经在 MVC 3 中工作过吗?
-
不,在这种情况下,我充当接收者...我们有 API 可以使用查询字符串 id=X&action=X 向请求者返回回调...我假装我正在接收回调并试图找出覆盖 MVC 接管“动作”。
-
我的解决方法是读取查询字符串 NameValueCollection 并从那里获取操作