0

我有一个看法:

@{
   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,然后将其传递给操作“计数”,控制器“搜索”,正如我所想的那样?!

我不知道以前的程序员是谁写了这段代码,但是控制器的操作代码是完整的或者使用 Request.QueryString,但是现在,QueryString 是空的。

真的可以将 tRVD 作为 QueryString 传递给 Action“Count”吗?现在,我可以从以下位置获取值:

RouteData.Values 

有我的键和值,但我不想更改以前编码器的代码并将所有从 QueryString 重写为 RouteData。

4

1 回答 1

1

查询字符串是空的,因为Count实际上不是使用普通请求调用动作方法,在 URL 中指定动作的参数,而是直接在框架内,携带RouteData对象中的参数。

RouteData因此,正如您所写,您应该使用 访问参数。

于 2012-08-20T17:11:38.230 回答