Dav*_*eer 14 asp.net-mvc routes asp.net-mvc-3
我想返回一个RedirectToRouteResult将用户发送到以下URL的URL:
/MyController/MyAction/id?newid=3&newid=5&newid=7
Run Code Online (Sandbox Code Playgroud)
该newid参数有几个值.
我的电话看起来像: return RedirectToAction(string.Empty, routeValues);
这是我到目前为止所尝试的,但是不起作用:
// ...?newid%5B0%5D=3&newid%5B1%5D=5&newid%5B2%5D=7
var routeValues = new RouteValueDictionary {
{"id", myid},
{"newid[0]", 3},
{"newid[1]", 5},
{"newid[2]", 7},
};
// ...?newid=System.Int32%5B%5D
var routeValues = new { id = myid, newid = new int[] { 3, 5, 7 } };
// ...?newid=System.String%5B%5D
var routeValues = new { id = myid, newid = new string[] { "3", "5", "7" } };
// ...?newid=System.Int32%5B%5D
var routeValues = new RouteValueDictionary {
{"id", myid},
{"newid", new int[] { 3, 5, 7 } }
};
Run Code Online (Sandbox Code Playgroud)
使这项工作的秘诀是什么?
Dar*_*rov 13
这是框架中真正缺少的一件事.你最好的选择是手动滚动它:
public ActionResult Foo()
{
var ids = new[] { 3, 5, 7 };
var url = new UriBuilder(Url.Action("MyAction", "MyController", new { id = "123" }, Request.Url.Scheme));
url.Query = string.Join("&", ids.Select(x => "newid=" + HttpUtility.UrlEncode(x.ToString())));
return Redirect(url.ToString());
}
Run Code Online (Sandbox Code Playgroud)
将其置于自定义扩展方法中可以提高当然的可读性.
| 归档时间: |
|
| 查看次数: |
14535 次 |
| 最近记录: |