2011-12-17 55 views
1

这里是我的项目类:如何从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的选定值根本没有被发送。

卡住了。请帮忙。

回答

3

我假设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,则无需担心。

如果还有问题,请提供更多与查看相关的信息。

+0

它的工作!谢谢,@dotnetstep! – 2011-12-17 15:24:43

相关问题