在ActionLink参数中以逗号分隔的字符串形式传递所选项目
本文关键字:项目 选项 字符串 参数 ActionLink 分隔 | 更新日期: 2023-09-27 18:26:26
我在Razor中尝试了下面的代码,并试图将所选项目值(来自Model.NewList
)作为参数(逗号分隔的字符串)传递到链接(New Link
)中
@using (Html.BeginForm())
{
@Html.ActionLink("New Link",
"NewAction",
"NewController",
new { columns = 3,
locations = String.Join(",", Model.NewList
.Where(m => m.Checked == true)
.Select(m => m.Code))
},
new { @class = "btn btn-success" })
for (var i = 0; i < Model.NewList.Count(); i++)
{
<table>
<tr>
<td>
@Html.CheckBoxFor(m => m.NewList[i].Checked)
</td>
<td>
@Html.HiddenFor(m => m.NewList[i].Code)
@Html.DisplayFor(m => m.NewList[i].Name)
</td>
</tr>
</table>
}
}
这样做的问题是,当它在页面加载时运行时,当没有选择项目时,它不会拾取用户(.Where(m => m.Checked == true
)选择的项目。当用户选择项目并在单击操作链接时选择所选项目时,如何更新模型?
您需要从表单中检索数据,而不是从最初传递给视图的模型(model.xxxx)中检索数据。我将使用表单提交的数据,方法是将ActionLink更改为submit按钮,并将表单操作指向所需的操作和控制器。您将收到的表单集合将包含选中的值。