powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / [MVC] редактирование коллекции
25 сообщений из 68, страница 2 из 3
[MVC] редактирование коллекции
    #38631798
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилНеверующие могут посмотреть реализацию DefaultModelBinder.cs (UpdateCollection, GetIndexes)
или ознакомиться с ответами http://stackoverflow.com/questions/14822615/how-does-mvc-4-list-model-binding-work

всё верно, только для задачи автора, где надо передать коллекцию ID, массив из int-ов, зачем такие мудацкие сложности?

из твоей же статьи:

You can bind to that by simply submitting a bunch of form fields each having the same name. For example, here’s an example of a form that would bind to this, assuming you keep each value a proper integer.

<form method="post" action="/Home/UpdateInts">
<input type="text" name="ints" value="1" />
<input type="text" name="ints" value="4" />
<input type="text" name="ints" value="2" />
<input type="text" name="ints" value="8" />
<input type="submit" />
</form>

If you were to take fiddler and look at what data actually gets posted when clicking the submit button, you’d see the following.

ints=1&ints=4&ints=2&ints=8

The default model binder sees all these name/value pairs with the same name and converts that to a collection with the key ints, which is then matched up with the ints parameter to your action method. Pretty simple!
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631805
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкоТаки я не вижу проблем делать индексы по-порядку. Новые элементы, созданные на клиенте, добавлять с последующим индексом. Если что-то удалили, индексы не пересчитывать, т.к. всё и так отлично пойдет в контроллер. Проблема надумана, всё работает в штатном порядке.

пока ты генеришь, индексы у тебя по порядку.

2 коллекции:

1. текущие ID страницы указанного пользователя
2. доступные ID страницы для указанного пользователя

пользователь из 2. перетаскивает мышей в 1. или наоборот, формируя новый набор из двух.

таким образом все индексы в наборе 1. перемешиваются. поэтому, либо использовать индекс как ключ, с дополнительным обвесом для биндера, либо просто передать коллекцию без индексов. и биндер прекрасно справляется с этим. индексы здесь не нужны.

отдельно для Изопропил ,

что за бред, индекс-ключ, для передачи значения этого же ключа??? в своём уме? )))))
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631810
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttтаким образом все индексы в наборе 1. перемешиваются
Ничего не перемешивается. При добавлении элемента сгенери индекс max + 1. В чем сложность?
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631813
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкоНичего не перемешивается. При добавлении элемента сгенери индекс max + 1. В чем сложность?

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

неужели только ради того, чтобы использовать @Html.HiddenFor вместо <input type="hidden" ... ?? в этом всё дело?
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631819
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttмсущкоНичего не перемешивается. При добавлении элемента сгенери индекс max + 1. В чем сложность?

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

неужели только ради того, чтобы использовать @Html.HiddenFor вместо <input type="hidden" ... ?? в этом всё дело?
Во-первых, @Html.HiddenFor не будет работать, только @Html.Hidden. Во-вторых, это не мудотня, это штатный механизм биндера. Я ему скармливаю то, что он легко распознаёт. Танцевать с роутами, забитыми гвоздями хардкодом к контроллеру - иезуитство. В-третьих, я написал выше тебе пример, где ответ?
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631833
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкоТанцевать с роутами, забитыми гвоздями хардкодом к контроллеру - иезуитство.

при чём тут роуты? мне удобно определять роутинг атрибутами. и не мне одному. в конце концов эта возможность является штатной начиная с MVC5. ты имеешь в что-то против нейтива? а? А?


мсущкоВо-вторых, это не мудотня, это штатный механизм биндера.

штатный механизм биндера прекрасно отрабатывает коллекции без индекса.


мсущкоВ-третьих, я написал выше тебе пример, где ответ?

в твоём примере

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
foreach (var item in Model.Items)
            {
                <tr>
                    <td>
                        <input type="hidden" name="Items" value="@item.Id" />
                        <input type="text" name="Items" value="@item.Value" />
                    </td>
                </tr>

                i++;
            }



у тебя участвует "сложная" модель, состоящая как минимум из полей Id и Value. как раз тут уместны индексы. правда, не по порядку, и индексы-ключи, о чём упомянул Изопропил. так что твоё решение тож не в кассу.

у автора же надо передать только коллекцию ID. больше ничего.
для этой задачи индексы не нужны.
и точка!
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631838
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущко,

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
@using (Html.BeginForm())
{
    <table>
        @foreach (var item in Model.Items)
            {
                <tr>
                    <td>
                        <span>@item.Value</span>
                        <input type="hidden" name="Items" value="@item.Id" />
                    </td>
                </tr>
            }
    </table>
    <input type="submit" value="Сохранить" />
}



Код: c#
1.
2.
3.
4.
public class MyModel
{
    public int[] Items {get;set;}
}



работает.
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631839
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
public class MyModel
{
    public int[] Items {get;set;}
}

public class MyViewModel
{
    public IEnumerable<SomeItemMode> Items {get;set;}
}



вот так вот. во вью уходит MyViewModel, принимаем на POST MyModel, так как задачи у моделей разные.
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631843
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttу тебя участвует "сложная" модель, состоящая как минимум из полей Id и Value. как раз тут уместны индексы. правда, не по порядку, и индексы-ключи, о чём упомянул Изопропил. так что твоё решение тож не в кассу.
Ну пипец какая сложная

hVostt
Код: c#
1.
2.
3.
4.
public class MyModel
{
    public int[] Items {get;set;}
}



работает.
С такими "моделями" можешь сходить в детский сад.
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631844
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкоС такими "моделями" можешь сходить в детский сад.

конкретные претензии к модели будут? или продолжишь детсадить? только на это ума хватает?

модель свою задачу прекрасно решает -- передаёт в контроллер новый список ID страниц, назначенных пользователю.

если обоснованных претензий у тебя нет, я те желаю уже, наконец, вылезти из детсада.
пора взрослеть дружище )) не надо всё усложнять.
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631846
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкоНу пипец какая сложная

сложная, значит комплексная. если что.
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631848
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttмсущкоС такими "моделями" можешь сходить в детский сад.

конкретные претензии к модели будут? или продолжишь детсадить? только на это ума хватает?

модель свою задачу прекрасно решает -- передаёт в контроллер новый список ID страниц, назначенных пользователю.

если обоснованных претензий у тебя нет, я те желаю уже, наконец, вылезти из детсада.
пора взрослеть дружище )) не надо всё усложнять.
Пипец просто какая польза перемешивать массив интов и сохранять на сервере Хвост, ты чёткий ламер ))
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631849
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttчто за бред, индекс-ключ, для передачи значения этого же ключа??? в своём уме? )))))
это не бред,
нет никаких целочисленных индексов от 0 до N-1

модель топикстартера остаётся без изменений , никаких javascript


Так и скажи - не разобрался.
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631851
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкоВо-вторых, это не мудотня, это штатный механизм биндера.
я тоже штатный механизм биндера предлагаю
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631852
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропилникаких javascript
Без javascript не получится.
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631853
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилэто не бред,
нет никаких целочисленных индексов от 0 до N-1

модель топикстартера остаётся без изменений , никаких javascript


Так и скажи - не разобрался.

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

ещё раз спрошу, так на всякий случай, зачем нужен индекс для передачи коллекции int? На кой ляд? вы оба двое вместе с мсу упоролись чтоли по случаю праздников?
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631854
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкоПипец просто какая польза перемешивать массив интов и сохранять на сервере Хвост, ты чёткий ламер ))

значит опять по существу нечего сказать. ну давай, обезьяничай дальше.
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631882
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttещё раз спрошу, так на всякий случай, зачем нужен индекс для передачи коллекции int? На кой ляд? вы оба двое вместе с мсу упоролись чтоли по случаю праздников?
Малёк, редактируемые интовые коллекции - это просто эпический фэйл какой-то, а не "реальные" задачи, коих 99.9% :)

hVosttмсущкоПипец просто какая польза перемешивать массив интов и сохранять на сервере Хвост, ты чёткий ламер ))
значит опять по существу нечего сказать. ну давай, обезьяничай дальше.
Ты просто опять обосрался, а теперь не знаешь, в какой куст спрятаться. Да?
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631891
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкоМалёк, редактируемые интовые коллекции - это просто эпический фэйл какой-то, а не "реальные" задачи, коих 99.9% :)

эка тебя от реальности отбросило.

в чём "эпический фейл"? ты уже многократно доказывал, что ты эпический балабол. может научишься отвечать за свои слова? ну хоть иногда, ради приличия.
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631892
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttмсущкоМалёк, редактируемые интовые коллекции - это просто эпический фэйл какой-то, а не "реальные" задачи, коих 99.9% :)

эка тебя от реальности отбросило.

в чём "эпический фейл"? ты уже многократно доказывал, что ты эпический балабол. может научишься отвечать за свои слова? ну хоть иногда, ради приличия.
Уже много раз было доказано, что ты эпический ламер. Что говорить, неделя позора тебе обеспечена - обтекай. Согласен?
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631893
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttгде как раз использовал индекс в качестве ключа
у меня ключ вместо целочисленного индекса [0..N-1]

Понятно?
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<form method="post" action="/Home/Create">

    <input type="hidden" name="products.Index" value="cold" />
    <input type="text" name="products[cold].Name" value="Beer" />
    <input type="text" name="products[cold].Price" value="7.32" />

    <input type="hidden" name="products.Index" value="123" />
    <input type="text" name="products[123].Name" value="Chips" />
    <input type="text" name="products[123].Price" value="2.23" />

    <input type="hidden" name="products.Index" value="caliente" />
    <input type="text" name="products[caliente].Name" value="Salsa" />
    <input type="text" name="products[caliente].Price" value="1.23" />

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


Так доходчивее?
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631903
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилТак доходчивее?

и что ты автору предлагаешь:

Код: html
1.
2.
    <input type="hidden" name="Pages.Index" value="@item.Id"/>
    <input type="hidden" name="Pages[@item.Id].Id" value="@item.Id" />



ты точно не бредишь?
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631905
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttИзопропилТак доходчивее?

и что ты автору предлагаешь:

Код: html
1.
2.
    <input type="hidden" name="Pages.Index" value="@item.Id"/>
    <input type="hidden" name="Pages[@item.Id].Id" value="@item.Id" />



ты точно не бредишь? Тынц
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631906
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкоЧто говорить, неделя позора тебе обеспечена - обтекай.

иди попроси у мальчишек в своём детсадике, пусть они тебя новым обзывалкам обучат.
потому что на конструктив ты видимо умственно не способен.
так хоть прояви себя в "обтекателях"
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631907
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил... но для этого байндер должен получить ...Показалось...
...
Рейтинг: 0 / 0
25 сообщений из 68, страница 2 из 3
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / [MVC] редактирование коллекции
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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