如何从ASP.NET MVC 3控制器中的列表框中获取值?
问题描述:
这里是我的项目类:如何从ASP.NET MVC 3控制器中的列表框中获取值?
public class Item
{
public int ItemId { get; set; }
public string Name { get; set; }
public virtual List<Tag> Tags { get; set; }
}
这里是我的GET操作:
//
// GET: /Home/AddItem/
public ActionResult AddItem()
{
List<Tag> Tags = Db.Tags.ToList();
ViewBag.Tags = new SelectList(Tags, "TagId", "Name");
return View();
}
这是我的观点:
@model MySite.Models.Item
@using (Html.BeginForm()) {
//...
@Html.ListBox("Tags")
//...
}
最后,这里是我的POST操作:
问题是Item.Tags.ToList()在POST动作中总是空的...就像ListBox的选定值根本没有被发送。
卡住了。请帮忙。
答
我假设TagId是整数。
public class Item
{
public int ItemId { get; set; }
public string Name { get; set; }
public virtual List<int> Tags { get; set; }
}
[HttpPost]
public ActionResult AddItem(Item Item)
{
List<int> NewItemTags = Item.Tags.ToList();
}
同样在查看您的ListBox应该有Name =“Tags”。如果您使用ListBoxFor,则无需担心。
如果还有问题,请提供更多与查看相关的信息。
它的工作!谢谢,@dotnetstep! – 2011-12-17 15:24:43