我开始在ASP.NET中开发,我找不到任何一个非常简单的用例示例: 我在视图上显示了一些模型对象。 我添加了一个复选框,以便用户可以选择他/她想要看到的那个。 然后,用户点击链接,他/她应该看到他/她选择的模型对象在另一个视图中显示。
1)获取所选项目列表的最佳方法是什么?
目前我用IsSelected
属性修饰了我的模型,因为这是我在ViewModel中所做的,但这可能不是正确答案。
2)如何将选定的数据传递给下一个控制器? 在我看到的所有示例中,数据在链接中是“硬编码的”并且是每个对象。 我没有在ASP MVC站点的任何样本中看到任何用户选择的示例。
编辑:恐怕不是那么清楚。我得到的是:<table style="width: 100%;">
<% foreach (Vehicle vehicle in Model)
{ %>
<tr>
<td>
<% 'Here be bound checkbox' %>
</td>
<td>
<%= Html.ActionLink("Show", "Index", "Map", vehicle.Name, null) %>
</td>
<td >
<%= Html.Encode(vehicle.Name) %>
</td>
<td >
<%= Html.Encode(vehicle.LastPositionReceived) %>
</td>
<td >
<%= Html.Encode(vehicle.Status) %>
</td>
<td >
<%= Html.Encode(vehicle.LocationDescription) %>
</td>
</tr>
<% } %>
</table>
点击Show
链接,我就可以显示 SINGLE 项目详情。
现在我想将复选框绑定到我的模型的属性,以便我可以触发一个操作(带有链接或按钮),以便只发送 SELECTED 项到控制器。 这是我没有看到任何关于这个例子的部分。
我可以添加
<% TempData.Add("Vehicles", Model); %>
在某个地方,然后车辆将传递给控制器,但我仍然需要一种方法将IsSelected
属性绑定到模型(我不想挂钩Checked
事件并做手动)。
我希望这会让事情变得更加清晰。
(感谢BTW的快速回复;))
答案 0 :(得分:0)
老实说,你没有给我们提供太多信息来给出正确的答案。但这是一个简单的例子,说明如何完成我认为你所描述的内容。
假设这是您在视图中向用户列出选择的部分:
<%foreach (YourModel m in (List<YourModel>)ViewData["ModelsToList"]) {%>
<p>
<input name="selection" type="radio" value="<%=m.ID%>" id="model-<%=m.ID%>" />
<label for="model-<%=m.ID%>"><%=m.Name%></label>
</p>
<%}%>
然后将该表单发布到这样的控制器操作:
public ActionResult ShowSelectedModel(int selection) {
YourModel selectedModel = yourModelRepository.getModel(selection);
return View(selectedModel);
}
然后在ShowSelectedModel
视图中,您可以显示用户的选择。
那是你的想法吗?