从列表创建MVC查询字符串
本文关键字:查询 字符串 MVC 创建 列表 | 更新日期: 2023-09-27 18:22:51
是否可以在代码中生成一个查询字符串,该字符串将绑定到像这样的控制器变量
MyController(List<long?> queryList)
{
//我希望使用defalt模型绑定器来绑定queryList。但我不知道如何生成这里可以接受的源字符串}
在我的代码中,我需要在类似的函数中生成querystring
GenerateBindable(List<long?> list)
{
string listQueryString="";
....
//What do I need to do here?
}
我试图为此找到一个内置函数,但即使是ActionLink帮助程序也没有达到我的预期。它导致了这个
我的/URL/PATH?a=System.Collections.Generic.List%601%5BSystem.可为Null的%601%5BSystem.Int64%5D%5D
看起来它只是在集合上做了一个ToString,这显然不起作用。
您可以通过在控制器中创建路由值字典来实现这一点。
var rv = new RouteValueDictionary();
int i = 0;
queryList.ForEach(t => { rv.Add("a[" + (++i) + "]", t); });
假设您将此路线值字典添加到viewbag(或您的模型)中。我将使用viewbag进行演示,但我总是建议您使用模型。
ViewBag.RouteValues = rv;
最后,在您的视图中,只需使用路由值字典创建一个动作链接。
@Html.ActionLink("About", "About", (RouteValueDictionary)ViewBag.RouteValues)