Как я могу получить значения из ListBox в моем контроллере ASP.NET MVC 3? - PullRequest
1 голос
/ 17 декабря 2011

Вот мой класс предметов:

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")

    //...
}

Наконец, вот мой POSTaction:

//
// POST: /Home/AddItem/

[HttpPost]
public ActionResult AddItem(Item Item)
{
    //...

    List<Tag> NewItemTags = Item.Tags.ToList();

    //...
}

Проблема в том, что Item.Tags.ToList () всегда пуст в действии POST ... как выбранные значения ListBox вообще не отправляются.

Застрял здесь.Пожалуйста, помогите.

1 Ответ

3 голосов
/ 17 декабря 2011

Я предполагаю, что 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, вам не о чем беспокоиться.

Если проблема не устранена, предоставьте дополнительную информацию, связанную с просмотром.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...