【问题标题】:Add value from Dictionary to ActionLink将字典中的值添加到 ActionLink
【发布时间】:2016-02-29 13:47:07
【问题描述】:

我正在尝试使用 ActionLink 发送对象列表。密钥有效,但即使它包含对象,我在列表中也一无所获。 我做错了什么?

我的模型包含一个字典,其中键是字符串,值是列表

@foreach (var clinic in Model.Clinics)
{
    <div>@clinic.Key</div>
    @Html.ActionLink(clinic.Key, "LoadSelectedClinicView", "Clinic", new {customerName=clinic.Key, dictionaryVal=clinic.Value}, null)
}

我的 LoadSelectedClinicView 看起来像这样

public PartialViewResult LoadSelectedCustomerView(string clinicName, List<MyObject> dictionaryVal)
        {
            foreach(var item in dictionaryVal){}
        }

【问题讨论】:

  • 请显示您的 MyObject 类的代码

标签: c# asp.net asp.net-mvc dictionary actionlink


【解决方案1】:

默认的 Html 助手不支持使用对象列表作为 Url 路由的参数,因此这不起作用:

@Html.ActionLink(clinic.Key, "LoadSelectedClinicView", "Clinic", new {customerName=clinic.Key, dictionaryVal=clinic.Value}, null)

您需要自己构建 URL。您可以编写一个简单的静态方法,它接受一个根 URL 和一个列表,并返回一个查询字符串,其中的参数与一个 & 分隔符连接。 String.join 是一种方便的方法:

string.Join("&",list)

您需要注意 URL 不超过 Url 的最大长度,大约为 2,083 个字符。

【讨论】:

    猜你喜欢
    • 2021-12-30
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2022-11-05
    • 2022-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多