我有一个用于传递字符串列表的网址
/Home/Index?Person%5B0%5D=Myname&Person%5B1%5D=Yourname
未编码,
/Home/Index?Person[0]=Myname&Person[1]=Yourname
行动方法
public ActionResult(List<string> person)
{
...
}
参数列表人员将使用值Myname和Yourname正确填充。
我需要使用RedirectToAction
重定向到此网址我通常会这样做
RedirectToAction("Index","Home",new {Parameter1=value1})
但显然我不能使用Person%5B0%5D作为参数名称,因为它有无效的字符。
我如何创建这样的链接或者我应该使用不同的URL方案?
答案 0 :(得分:1)
您好我处理了您的查询,最后得到了结果,只需检查此代码,找到适合您查询的天气。
控制器代码:
public ActionResult showString()
{
try
{
IEnumerable<string> persons = new[] { "myname", "urname" };
var values = new RouteValueDictionary(
persons
.Select((sampleper, index) => new {sampleper, index })
.ToDictionary(
key => string.Format("[{0}]", key.index),
value => (object)value.sampleper
)
);
return RedirectToAction("details", values);
}
catch (Exception)
{
throw;
}
}
,另一个操作方法是详细信息,列表为参数
public ActionResult details(IEnumerable<string> persons)
{
ViewBag.person = persons;
return View();
}
如果您将链接作为
传递,它也有效http://localhost:2266/Home/details?%5B0%5D=myname&%5B1%5D=urname
详细信息操作方法的视图是
@{
ViewBag.Title = "details";
}
<h2>details</h2>
<ul>
@foreach (var i in ViewBag.person)
{
<li>@i</li>
}
</ul>