我正在尝试使用ActionLink发送对象列表。密钥有效,但即使它包含对象,我也无法在列表中获得任何内容。 我做错了什么?
我的模型包含一个Dictionary,其中Key是一个字符串,Value是一个List
$my_date = "29/02/2016";
$scheduled_job = strtotime($my_date);
$this_week = strtotime("first day this week");
$last_week = strtotime("last week monday");
$this_month = strtotime("first day this month");
$last_month = strtotime("first day last month");
$last_three_month = strtotime("first day -3 month");
if($scheduled_job > $this_week) {
echo 1;
}
if($scheduled_job < $this_week and $scheduled_job >= $last_week) {
echo 2;
}
if(strtotime($date_job) > $this_month) {
echo 3;
}
if($scheduled_job < $this_month and $scheduled_job >= $last_month) {
echo 4;
}
if(strtotime($date_job) > $last_three_month) {
echo 5;
}
我的LoadSelectedClinicView看起来像这样
@foreach (var clinic in Model.Clinics)
{
<div>@clinic.Key</div>
@Html.ActionLink(clinic.Key, "LoadSelectedClinicView", "Clinic", new {customerName=clinic.Key, dictionaryVal=clinic.Value}, null)
}
答案 0 :(得分:1)
默认的Html帮助程序不支持使用对象列表作为Url路由的参数,因此这不起作用:
@Html.ActionLink(clinic.Key, "LoadSelectedClinicView", "Clinic", new {customerName=clinic.Key, dictionaryVal=clinic.Value}, null)
您需要自己构建网址。您可以编写一个简单的静态方法,该方法接受根URL和列表,并返回一个查询字符串,其参数与&amp;连接。分隔符。 String.join是一种方便的方法:
string.Join("&",list)
您需要注意URL不超过Url的最大长度,类似于2,083个字符长。