我有一个观点:
@{
RouteValueDictionary tRVD = new RouteValueDictionary(ViewContext.RouteData.Values);
foreach (string key in sQS.Split('&'))
{
var itemArr = key.Split('=');
tRVD[itemArr[0]] = itemArr[1];
}
tRVD["dtLastRequest"] = item.dtLastRequest;
tRVD["uiSubscription"] = item.uiSubscription;
tRVD["area"] = "";
}
@Html.Action("Count", "Search", tRVD)
使用15个键生成RouteValueDictionary&值,然后将它传递给Action“Count”,控制器“Search”,正如我想的那样?!
我不知道以前编写过这段代码的程序员,但是控制器的动作代码已满或者使用了Request.QueryString,但是现在,QueryString是空的。
是否真的可以将tRVD传递给Action“Count”作为QueryString?现在,我可以从以下方面获得价值:
RouteData.Values
有我的键和值,但我不想更改以前编码器的代码并将所有内容从QueryString重写为RouteData。
答案 0 :(得分:1)
查询字符串为空,因为Count
操作方法实际上是在不使用普通请求的情况下调用的,在URL中指定了操作的参数,但直接在框架内,携带RouteData
中的参数对象
所以你应该像你写的那样使用RouteData
访问参数。