将字典中的值添加到 ActionLink
Add value from Dictionary to ActionLink
我正在尝试使用 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){}
}
默认的 Html 助手不支持使用对象列表作为 Url 路由的参数,因此这将不起作用:
@Html.ActionLink(clinic.Key, "LoadSelectedClinicView", "Clinic", new {customerName=clinic.Key, dictionaryVal=clinic.Value}, null)
您需要自己构建 URL。您可以编写一个简单的静态方法,它接受一个根 Url 和一个列表以及 returns 一个查询字符串,其参数与 & 分隔符连接。 String.join 是一种方便的方法:
string.Join("&",list)
您需要注意 URL 不能超过 Url 的最大长度,大约 2,083 个字符。
我正在尝试使用 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){}
}
默认的 Html 助手不支持使用对象列表作为 Url 路由的参数,因此这将不起作用:
@Html.ActionLink(clinic.Key, "LoadSelectedClinicView", "Clinic", new {customerName=clinic.Key, dictionaryVal=clinic.Value}, null)
您需要自己构建 URL。您可以编写一个简单的静态方法,它接受一个根 Url 和一个列表以及 returns 一个查询字符串,其参数与 & 分隔符连接。 String.join 是一种方便的方法:
string.Join("&",list)
您需要注意 URL 不能超过 Url 的最大长度,大约 2,083 个字符。