我有一个使用属性multiple =“multitple”的控件的表单。这允许用户在控件中选择多个项目。
使用get方法提交表单时,请求页面的url包含一个具有相同名称的多个参数。每个项目选择一个。例如,我可以得到这样的东西:
/logs?levels=DEBUG&levels=INFO&levels=FATAL
在我的控制器中,操作正确地接收类型为List的参数中的值,如下所示:
public ActionResult Index(List<String> levels)
{
...
}
现在,出于某种原因,我需要创建一个指向此操作的链接,该链接将包含levels参数的多个值。如何使用Html.ActionLink创建这样的链接?我这样试过:
@Html.ActionLink((p + 1).ToString(), "Index", new {
levels = ViewBag.selectedLevels_AS_A_GENERIC_LIST_OF_STRINGS,
itemsPerPage = ViewBag.itemsPerPage
});
它不起作用,因为列表不以任何方式展开,而是在其上调用.ToString()并将结果插入到链接中。当然,我无法创建一个具有名为“levels”的多重属性的对象。
如何创建一个ActionLink,就像我使用的表单生成的一样?
由于
答案 0 :(得分:3)
这样的事情应该有效。
@Html.ActionLink((p + 1).ToString(), "Index", new RouteValueDictionary{
{"levels[0]", selectedLevels_AS_A_GENERIC_LIST_OF_STRINGS[0]},
{"levels[1]", selectedLevels_AS_A_GENERIC_LIST_OF_STRINGS[1]},
{"itemsPerPage", ViewBag.itemsPerPage}
});