我有一个控制器动作
public class MyController : SitecoreController
{
[AllowCrossSiteJson]
public JsonResult AddSubscriptionsJson(string pipeDelimitedMailingListIds,
string email)
{
...
}
}
我知道我可以使用
获取Url操作Url.Action("AddSubscriptionsJson","MyController")
有没有办法通过代码获取可用参数?比方说一个数组/字符串列表?
喜欢这个吗?
["pipeDelimitedMailingListIds","email"]
答案 0 :(得分:0)
也许不是最好的"实现这一目标的方法,但无论如何都是这样。此示例代码假定与您尝试为参数名称选择的操作方法位于同一控制器内的GetParamNames()
方法。
private List<string> GetParamNames(System.Reflection.MethodInfo method)
{
var output = new List<string>();
if (method != null && method.GetParameters().Length > 0)
{
foreach(var par in method.GetParameters())
output.Add(par.Name) ;
}
return output;
}
然后从同一个控制器中调用:
var parameters = GetParamNames(this.GetType().GetMethod("your action method name"));
GetParamNames()
方法显然可以放在更通用的位置,如共享实用程序类,供多个类使用。
希望这有帮助。
*解决方案来自之前的帖子...names of method parameters
答案 1 :(得分:0)
除了Chris发布的信息之外,以下链接还包含获取MVC操作的MethodInfo所需的信息 - 使用控制器/操作名称来解析方法:How do I get the MethodInfo of an action, given action, controller and area names?