MVC передает ViewBag в контроллер - PullRequest
7 голосов
/ 02 декабря 2011

У меня есть Viewbag, представляющий собой список, который я передаю от контроллера к представлению. Viewbag - это список из 10 записей в моем случае. Находясь в представлении, если пользователь нажимает кнопку «Сохранить», мне нравится передавать содержимое представления в контроллер [HttpPost] Create, чтобы я мог создавать записи, которые находятся в Viewbag. Я уверен, как это сделать. Я сделал создание новой записи для 1 элемента, но как мне сделать это для нескольких записей.

1 Ответ

13 голосов
/ 02 декабря 2011

Вот краткий пример использования ViewBag.Я бы порекомендовал переключиться и использовать модель для привязки.Вот отличная статья об этом. Привязка модели

Метод получения:

    public ActionResult Index()
    {
        ViewBag.Message = "Welcome to ASP.NET MVC!";
        List<string> items = new List<string>();
        items.Add("Product1");
        items.Add("Product2");
        items.Add("Product3");

        ViewBag.Items = items;
        return View();
    }

Метод публикации

    [HttpPost]
    public ActionResult Index(FormCollection collection)
    {
        //only selected prodcuts will be in the collection
        foreach (var product in collection)
        {

        }
        return View();
    }

HTML:

@using (Html.BeginForm("Index", "Home"))
 {
     foreach (var p in ViewBag.Items)
     {
        <label for="@p">@p</label>
        <input type="checkbox" name="@p" />
     }

    <div>
    <input id='btnSubmit' type="submit" value='submit' />
    </div>
 }
...