powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Хочу через ViewBag передать данные во View, но просят привязать источник данных.
25 сообщений из 80, страница 1 из 4
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38527692
kim-kong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу через ViewBag передать данные в View (в похожей проге писал 1х1 и все работало), но на этот раз, когда я заполняю поля и нажимаю submit, меня просят привязать данные:
System.InvalidOperationException: Прежде чем может быть выполнена эта операция, должен быть привязан источник данных.
Заранее извиняюсь за русскую студию.

Модель, контроллер, вью:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
    public class IngListModel
    {
        public int IngListId { get; set; }
        public int ProdId { get; set; }
        public int IngId { get; set; }
        public string ProdName { get; set; }
        public string IngName { get; set; }
        public float Amount { get; set; }
    }



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
        public ActionResult IngList1(int id)
        {
            ViewBag.Ingredient = new SelectList(db.Goods, "Id", "Name");
            ViewBag.Product = new SelectList(db.Products, "Id", "Name");
            ViewBag.Name = from a in db.Products where a.Id == id select a.Name;
            ViewBag.viewModel =
                (from il in db.IngLists
                 join p in db.Products on il.ProdId equals p.Id
                 join g in db.Goods on il.GoodId equals g.Id
                 where (il.ProdId == id) && (il.GoodId == g.Id)
                 select new IngListModel { IngListId = il.Id, ProdId = p.Id, ProdName = p.Name, IngName = g.Name, Amount = il.amount }).ToList();
            return View();
        }

        [HttpPost]
        public ActionResult IngList1(IngList inglist)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    db.IngLists.Add(inglist);
                    db.SaveChanges();
                    return RedirectToAction("IngList1");
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(String.Empty, ex);
            }
            return View();
        }



Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
@{
    ViewBag.Title = "IngList1";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>@Html.Display("Name")</h2>
<br>
@{
    var grid = new WebGrid(ViewBag.viewModel,
        rowsPerPage: 10,
        defaultSort:"ProdName",
        columnNames:new [] {"IngName", "Amount"}
        );
}

@grid.GetHtml(

fillEmptyRows:false,
mode:WebGridPagerModes.All,

columns:grid.Columns
(
grid.Column("IngName", header:"Сырье"),
grid.Column("Amount", header:"Кг"),
grid.Column("", header:"", format: @<text>@Html.ActionLink("Удалить", "DeleteIngList", new { id = item.IngListId }, new { @class = "btn btn-success" })</text>)
)
)

@model EnzoApp.Models.IngList
<h2>Добавить ингредиент</h2>

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)

    <fieldset>
        <legend>IngList</legend>

        <div class="editor-field">
            @Html.DropDownList("ProdId", (IEnumerable<SelectListItem>) ViewBag.Product, "--Выберите продукт--", new { @style = "width: 300px;" })
            @Html.ValidationMessageFor(model => model.ProdId)
        </div>

        <div class="editor-field">
            @Html.DropDownList("IngId", (IEnumerable<SelectListItem>) ViewBag.Ingredient, "--Выберите сырье--", new { @style = "width: 300px;" })
            @Html.ValidationMessageFor(model => model.GoodId)
        </div>

        <div class="editor-label">
            Количество
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.amount, new { @style = "width: 270px;" })
            @Html.ValidationMessageFor(model => model.amount)
        </div>

        <p>
            <input type="submit" value="Добавить" />
        </p>
    </fieldset>
}

<div>
    @Html.ActionLink("Назад", "Products1")
</div>
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38538879
kim-kong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kim-kong,

Вбил данные в БД вручную, grid рабочий, значит я криво ввожу данные.
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38538899
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViewBag зло
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38539063
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУViewBag зло

для DropDownList и прочих таких штук, ViewBag -- то што надо
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38539078
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМСУViewBag зло

для DropDownList и прочих таких штук, ViewBag -- то што надо

Ты чё там куришь, злыдень?
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38539111
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУТы чё там куришь, злыдень?

я те серьёзна говорю, если затолкать IEnumerable<SelectListItem> во ViewData/Bag с ключом поля, то он отрендерится в DropDownList:

Код: c#
1.
2.
3.
4.
5.
6.
7.
// где-то в фильтре или контроллере:

ViewBag.CategoryId = new SelectList(categories, "Id", "Name");

// потом во вью:

@Html.DropDownList("CategoryId");
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38539119
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mike Wasson говорит, что Razor - отстой, Knockout через JSON рулит ... :)
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38539127
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
carrotikMike Wasson говорит, что Razor - отстой, Knockout через JSON рулит ... :)

это он говорит:

http://mikewasson.com/

?
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38539133
kim-kong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

Если есть предложение лучше - вперед.
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38539179
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имхо согласен с hVostt, чтоб не засорять целевую модель бесполезными списками
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38539188
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМСУТы чё там куришь, злыдень?

я те серьёзна говорю, если затолкать IEnumerable<SelectListItem> во ViewData/Bag с ключом поля, то он отрендерится в DropDownList:

Код: c#
1.
2.
3.
4.
5.
6.
7.
// где-то в фильтре или контроллере:

ViewBag.CategoryId = new SelectList(categories, "Id", "Name");

// потом во вью:

@Html.DropDownList("CategoryId");



Уволить без выплаты материального пособия.

http://codearticles.ru/articles/764

handmadeFromRuимхо согласен с hVostt, чтоб не засорять целевую модель бесполезными списками
-1
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38539231
eJack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУhVosttпропущено...


я те серьёзна говорю, если затолкать IEnumerable<SelectListItem> во ViewData/Bag с ключом поля, то он отрендерится в DropDownList:

Код: c#
1.
2.
3.
4.
5.
6.
7.
// где-то в фильтре или контроллере:

ViewBag.CategoryId = new SelectList(categories, "Id", "Name");

// потом во вью:

@Html.DropDownList("CategoryId");



Уволить без выплаты материального пособия.

http://codearticles.ru/articles/764

handmadeFromRuимхо согласен с hVostt, чтоб не засорять целевую модель бесполезными списками
-1

+100500

Особенно если таких выпадающих списков на форме много, замучаешься ViewBag писать сначала в методе контроллера, а потом в разметке.

View должен отображать жанные из одного места - из модели. При подходе
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
 ViewBag.Ingredient = new SelectList(db.Goods, "Id", "Name");
            ViewBag.Product = new SelectList(db.Products, "Id", "Name");
            ViewBag.Name = from a in db.Products where a.Id == id select a.Name;
            ViewBag.viewModel =
                (from il in db.IngLists
                 join p in db.Products on il.ProdId equals p.Id
                 join g in db.Goods on il.GoodId equals g.Id
                 where (il.ProdId == id) && (il.GoodId == g.Id)
                 select new IngListModel { IngListId = il.Id, ProdId = p.Id, ProdName = p.Name, IngName = g.Name, Amount = il.amount }).ToList();



вы получаете не формируете целостную модель, это просто данные полученные разными запросами, без каких либо зависимостей.
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38539254
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eJack,
и? поля просто висят и просто заполняются и никакой нагрузки смысловой не несут.

МСУ я раньше также в модель прокидывал, но надоело. Ощущение искусственности
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38539300
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRuМСУ я раньше также в модель прокидывал, но надоело. Ощущение искусственности
Что значит надоело? Модель представления - это описание представления, чем "типизированнее" она будет, тем в будущем будет легче сопровождать такое решение, тестировать и вносить изменения. Залипушки на вьюбэгах - это шаг в пропасть , на странице из одного комбобокса это еще не страшно, на страницах с множеством контролов - это просто хаос.
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38539345
eJack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRueJack,
и? поля просто висят и просто заполняются и никакой нагрузки смысловой не несут.

МСУ я раньше также в модель прокидывал, но надоело. Ощущение искусственности

А что и? У вас нет понимания архитектуры решения, таких разработчиков, которым надоело писать нормально сопровождаемый код, я увольняю. Как тимлидер.
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38539351
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eJackhandmadeFromRueJack,
и? поля просто висят и просто заполняются и никакой нагрузки смысловой не несут.

МСУ я раньше также в модель прокидывал, но надоело. Ощущение искусственности

А что и? У вас нет понимания архитектуры решения, таких разработчиков, которым надоело писать нормально сопровождаемый код, я увольняю. Как тимлидер.
+1, если желание писать красиво и правильно пропадает, лучше валить из разработки на пастбище, увеличивать надои страны.
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38539353
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЧто значит надоело? Модель представления - это описание представления, чем "типизированнее" она будет, тем в будущем будет легче сопровождать такое решение, тестировать и вносить изменения. Залипушки на вьюбэгах - это шаг в пропасть , на странице из одного комбобокса это еще не страшно, на страницах с множеством контролов - это просто хаос.

типизированная модель представления -- очень хорошо. но отказываться от вьюбэга при этом глупо. пример с DropDownList -- тот случай, когда ViewBag использовать нужно.

вот это:

Код: c#
1.
2.
3.
4.
5.
6.
7.
@Html.DropDownListFor(model =>
    model.SelectedID,
    Model.Items.Select(d => new SelectListItem { Value = d.ID.ToString(), Text = d.Text })
)

public List<MyDto> Items { get; set; }
public string SelectedID { get; set; }



обсолютно неюзабельная вафля, не годится даже в качестве примеров для учебников.
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38539357
kim-kong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

У меня не такое масштабное приложение, чтобы об этом задумываться, вьюбаг хорошо зашел.
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38539361
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,
ну как те сказать. я не вижу разницы просто: что я прокидываю коллекции через модель для биндинга дропдаунов что через ViewBag . Тестам это не мешает так как на входе модель, тупо id-ники выбранных элементов. Эти искусственные коллекции не несут какой то логики кроме как забиндить список и все. Ты еще скажи ты title и meta без ViewBag прокидываешь. Это чисто мои ощущения даже с большим кол-во контролов, конечно будет фейл если имена переменных во ViewBag пересекутся или поле ключа переименовали. и МСУ давай без твоих шуточек про стадо и прочее. я тебе свои аргументы ты мне свои. а какашками все умеют кидаться.

eJack
в чем нормальность? прокинули коллекцию Id-Name без какой либо смысловой нагрузки? по вашему я не смогу тестами покрыть это дело?
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38539362
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eJackhandmadeFromRueJack,
и? поля просто висят и просто заполняются и никакой нагрузки смысловой не несут.

МСУ я раньше также в модель прокидывал, но надоело. Ощущение искусственности

А что и? У вас нет понимания архитектуры решения, таких разработчиков, которым надоело писать нормально сопровождаемый код, я увольняю. Как тимлидер.
+1, если желание писать красиво и правильно пропадает, лучше валить из разработки на пастбище, увеличивать надои страны.
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38539395
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eJackОсобенно если таких выпадающих списков на форме много, замучаешься ViewBag писать сначала в методе контроллера, а потом в разметке.

View должен отображать жанные из одного места - из модели.


понятие "декомпозиция" вам о чём-нибудь говорит? данные для выпадающего списка прибивать гвоздями к вью модели -- практика однозначно плохая и неэффективная.
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38539399
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eJack,
целевую модель никто не пихает во вьюбег, а если смотреть ваш примеру - вы имели ввиду это, только вспомогательные списки.
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38539403
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttтипизированная модель представления -- очень хорошо. но отказываться от вьюбэга при этом глупо.
Так а зачем он мне нужен, если мои задачи покрываются полной типизацией?

hVosttпример с DropDownList -- тот случай, когда ViewBag использовать нужно.
Пример с DropDownList -- тот случай, когда ViewBag использовать не нужно.

hVosttвот это:

Код: c#
1.
2.
3.
4.
5.
6.
7.
@Html.DropDownListFor(model =>
    model.SelectedID,
    Model.Items.Select(d => new SelectListItem { Value = d.ID.ToString(), Text = d.Text })
)

public List<MyDto> Items { get; set; }
public string SelectedID { get; set; }



обсолютно неюзабельная вафля, не годится даже в качестве примеров для учебников.
Я не собираюсь тебя уговаривать писать правильный код.

handmadeFromRuМСУ,
ну как те сказать. я не вижу разницы просто: что я прокидываю коллекции через модель для биндинга дропдаунов что через ViewBag .
Не видишь разницу между типизируемым тестируемым кодом и гавнокодом с вью баг? Ну извини, мне тут нечего сказать. Это как использовать DataTable и ORM.

handmadeFromRuТестам это не мешает так как на входе модель, тупо id-ники выбранных элементов. Эти искусственные коллекции не несут какой то логики кроме как забиндить список и все. Ты еще скажи ты title и meta без ViewBag прокидываешь. Это чисто мои ощущения даже с большим кол-во контролов, конечно будет фейл если имена переменных во ViewBag пересекутся или поле ключа переименовали. и МСУ давай без твоих шуточек про стадо и прочее. я тебе свои аргументы ты мне свои. а какашками все умеют кидаться.
Это не искуственные коллекции, это описание представления. Они нужны всегда и везде. Даже в том же MVVM подходе ты точно так же описываешь свою коллекцию и SelectedId и намапливаешь в XAML. А ViewBag я бы вообще запретил бы в MVC.
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38539408
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostteJack
понятие "декомпозиция" вам о чём-нибудь говорит?
Декомпозиция головного мозга?

hVosttданные для выпадающего списка прибивать гвоздями к вью модели -- практика однозначно плохая и неэффективная.
Любые данные (а не только выпадающего списка) нужно прибивать гвоздями к вью модели. На то она и вью модель.
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38539491
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЭто не искуственные коллекции, это описание представления. Они нужны всегда и везде. Даже в том же MVVM подходе ты точно так же описываешь свою коллекцию и SelectedId и намапливаешь в XAML.
вот тут ты меня переубедил.
...
Рейтинг: 0 / 0
25 сообщений из 80, страница 1 из 4
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Хочу через ViewBag передать данные во View, но просят привязать источник данных.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]