我不完全了解您需要什么,但我认为您可能使用复选框或其他方式从用户那里选择了一些项目。
答案可能在此链接上:CheckboxList in MVC3.0
基本上你要做的是:创建一个接收 List 或 IEnumerable 项的 Action,然后将你的表单 POST 到该 Action。
我也做了一个示例代码,可以提供帮助:
你可以有一个 Item 模型:
using System;
namespace SandboxMvcApplication.Models
{
public class Item
{
public int Id { get; set; }
public string Title { get; set; }
}
}
您的控制器可能是:
public class HomeController : Controller
{
List<Item> itemList = new List<Item>() {
new Item() { Id = 1, Title = "Item 1" },
new Item() { Id = 2, Title = "Item 2" },
new Item() { Id = 3, Title = "Item 3" }
};
public ActionResult Index()
{
return View(itemList);
}
public ActionResult ProcessForm(int[] items)
{
var selectedItems = new List<Item>();
foreach (var item in items)
{
selectedItems.AddRange(itemList.Where(i => i.Id == item));
}
return View("Success", selectedItems);
}
}
一个索引视图(~/Views/Home/Index.cshtml):
@model List<SandboxMvcApplication.Models.Item>
@{
ViewBag.Title = "Home Page";
}
<form action="@Url.Action("ProcessForm")" method="post">
<ul>
@foreach (var item in Model)
{
<li><input type="checkbox" name="items" value="@item.Id" />@item.Title</li>
}
</ul>
<input type="submit" value="Send selected items"/>
</form>
最后是一个成功视图,显示用户选择了哪些项目:
@model List<SandboxMvcApplication.Models.Item>
@{
ViewBag.Title = "Success";
}
<h2>Success: Selected items were</h2>
<ul>
@foreach (var item in Model)
{
<li>@item.Id => @item.Title</li>
}
</ul>