asp.net mvc 4.6从控制器动作方法访问所有路径字典参数和值

时间:2015-09-15 10:27:42

标签: c# asp.net asp.net-mvc

我有以下代码

public class UserProfileController : Controller 
{
  public ActionResult Index(string manager="",string status="") 
  {
    var rvd = // Get route value dictionary for current call
    UserProfileService.GetEmployees(rvd);
    return View(vm);
  }
}

我希望能够将RouteValueDictionary传递给UserProfileService,其中包含manager和status的key \ values。

例如

如果我提出以下请求,https://localhost:44301/UserProfile?manager=bill&status=active 我希望路由值字典包含管理器和状态键。

到目前为止,我所能找到的是RouteDate,其中包含" controller"的键值。和"行动"但不是行动方法参数值"经理","活跃"。

1 个答案:

答案 0 :(得分:0)

最终创建和扩展方法来完成这项工作。

public static IDictionary<string,string> MergeRouteQueryValues (this Controller c) {
  var d = new Dictionary<string,string>() {
    {"controller",c.ControllerName()},
    {"action",c.ActionName()}
  };
  foreach (string key in c.Request.QueryString.Keys) { 
    d.Add(key,c.Request.QueryString[key]);
  }
  return d;
}