【发布时间】:2011-11-09 03:24:16
【问题描述】:
如何获取对象参数,在运行时调用哪个动作方法,以完成以下效果
public ActionResult Index(Int32? x, Int32? y, DateTime? z, NumberStyles n) {
this.RouteData.Values["x"] = x
this.RouteData.Values["y"] = y
this.RouteData.Values["z"] = z
this.RouteData.Values["n"] = n
return View();
}
似乎没有这种繁琐的代码,每个参数的名称和值应该是可能的。
有时您可以通过查看 RouteData 来获取调用 action 方法的参数,但情况并非总是如此,特别是如果使用 ajax 请求调用 action 方法时,参数可能不会显示在RouteData,而是显示在请求参数中。
我正在寻找的是一种通用的方法来获取在运行时在操作方法签名中定义的每个参数,并获取参数的实际对象、运行时值,而不仅仅是一个字符串。此外,无论操作方法如何被调用,它都应该工作,无论它可能是ChildActionExtensions.Action 或ajax 回调的结果。
RouteData 和 Request Params 似乎没有我想要的。
【问题讨论】:
-
这让我很感兴趣,但是,我也在等待别人说你做错了。如果可能的话,我会对更多代码感兴趣。
-
@Valamas 我也是。令人惊讶的是,现在在框架的第三版中,还没有提出这个问题。不足为奇的是,如果有人不能真正回答这个问题,那么他们的答案就会变成“你为什么需要......?”
标签: asp.net-mvc-3