我在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
)选择的项目,因为它在页面加载时运行。如何在用户选择项目时更新模型,并在点击操作链接时选择所选项目?
答案 0 :(得分:0)
您需要从表单中检索数据,而不是从最初传递给视图的模型(Model.xxxx)中检索数据。 我将使用表单提交的数据,将ActionLink更改为提交按钮,并将表单操作指向所需的操作和控制器。 您将收到的表单集合将包含选中的值。