加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 如何将通用列表传递给Html.ActionLink(…)?

发布时间:2020-12-16 09:51:35 所属栏目:asp.Net 来源:网络整理
导读:我有一个表单使用属性multiple =“multitple”的控件.这允许用户在控件中选择多个项目. 使用get方法提交表单时,请求页面的url包含一个具有相同名称的多个参数.每个项目选择一个.例如,我可以得到这样的东西: /logs?levels=DEBUGlevels=INFOlevels=FATAL 在我
我有一个表单使用属性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,就像我使用的表单生成的一样?

谢谢

解决方法

这样的事情应该有效.

@Html.ActionLink((p + 1).ToString(),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}
});

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读