Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > Передача коллекции из представления в контроллер


Автор: sssssss7 11.1.2012, 19:13
Здраствуйте,  поскажите пожалуйста где можно прочитать или просто подскажите  smile  как из представления передать в метод контроллера коллекцию, например:

есть класс:
Код

public class Product {
    public string Title { get; set; }
    public string Price { get; set; }
}
 

в представление:
Код

<form method="post" action="/Home/Create">

    <input type="text" name="Title" value="Огурец" />
    <input type="text" name="Price" value="5 евро" />

    <input type="text" name="Title" value="Помидорище" />
    <input type="text" name="Price" value="7 евро" />

    <input type="text" name="Title" value="Тыквина" />
    <input type="text" name="Price" value="15 евро" />

    <input type="submit" />
</form>


в контроллере:
Код

public ActionResult UpdateProducts(ICollection<Product> products) {
    return View(products);
}


и что использовать лучше для этой цели ICollection, IList или еще что, может просто list, возможно существуют какие нибудь хелперы, я новичок всем новичкам и не до конца разобрался с этими интерфейсами... подскажите пожалуйста как надо, спасибо. Мучаю MVC 3 и razor.

Автор: morzov 3.11.2012, 19:25
Параметр name у текстбоксов внутри формы должен быть в формате "имя_передаваемого_параметра[индекс].имя_поля"

Код

 @using (Html.BeginForm("Create", "Home"))
{
    @Html.TextBox("Product[0].Title", "Огурец");
    @Html.TextBox("Product[0].Price", "5 eвро");

    @Html.TextBox("Product[1].Title", "Помидорище");
    @Html.TextBox("Product[1].Price", "7 eвро");

   @Html.TextBox("Product[2].Title", "Тыквина");
   @Html.TextBox("Product[2].Price", "15 eвро");

    <input type="submit" />
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)