powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / [MVC] редактирование коллекции
68 сообщений из 68, показаны все 3 страниц
[MVC] редактирование коллекции
    #38631353
maratoss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите как в MVC можно отредактировать(добавить/удалить айтемы) коллекцию модели?
Вот есть такая модель - User, коллекцию Pages нужно отредактировать на форме
Код: c#
1.
2.
3.
4.
5.
6.
    public class User : IEntity<long>
    {
        ...
        public IList<Page> Pages { get; set; }
        ...
    }


и есть такой action в контроллере
Код: c#
1.
2.
3.
4.
5.
6.
7.
        [HttpPost]
        public ActionResult SaveOrUpdate(User userModel)
        {
            // И вот тут хочется получить уже заполненную коллекцию userModel.Pages
            User user = _userService.SaveOrUpdate(userModel);
            return RedirectToAction("Index");
        }




Сделал пока вот так
Драгэндропом перемещаю из #availablePages в #userPages
при сабмите формы #availablePages очищаю (чтобы post запросом не отправлялись)
вьюха
Код: 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.
 
@model User
...           
<td class="ui-droppable" id="userPages">
	тут список страниц пользователя
	@foreach (Page page in @Model.Pages)
	{
		<div class="ui-draggable">
			@page.Name
			<input type="hidden" name="page" value="@page.Id" />
		</div>
	}

</td>
<td class="ui-droppable" id="availablePages">
	тут список всех доступных страниц
	@foreach (Page page in @Model.AvailablePages)
	{
		<div class="ui-draggable">
			@page.Name
			<input type="hidden" name="page" value="@page.Id" />
		</div>
	}
</td>


и в контроллере такой код
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
[HttpPost]
public ActionResult SaveOrUpdate(User userModel, FormCollection collection)
{
	// и тут идет преобразование collection["page"] в коллекцию страниц
        // и запись их в userModel.Pages
	User user = _userService.SaveOrUpdate(userModel);
	return RedirectToAction("Index");
}

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

направление верное.
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631532
maratoss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал такой вариант:
(перед сабмитом чищу #availablePages)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<td class="ui-droppable" id="userPages">
	@for (int i = 0; i < @Model.User.Pages.Count; i++)
	{
		<div class="ui-draggable">
			@Model.User.Pages[i].Name
			@Html.HiddenFor(x => x.User.Pages[i].Id)
		</div>
	}
</td>
<td class="ui-droppable" id="availablePages">
	@for (int i = 0; i < @Model.AvailablePages.Count; i++)
	{
		<div class="ui-draggable">
			@Model.AvailablePages[i].Name
			@Html.Hidden(string.Format("User.Pages[{0}].Id", @Model.User.Pages.Count + i), @Model.AvailablePages[i].Id)
		</div>
	}
</td>


но встала проблема - индексы у хидденов не могут быть через один
т.е. у меня содержимое #userPages может получиться такое:
Код: html
1.
2.
<input type="hidden" name="User.Pages[0].Id" />
<input type="hidden" name="User.Pages[2].Id" />


и тогда на сервер придет только одна первая page, как тогда быть? Самому перед сабмитом править индексы?
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631538
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maratossно встала проблема - индексы у хидденов не могут быть через один
т.е. у меня содержимое #userPages может получиться такое:
Код: html
1.
2.
<input type="hidden" name="User.Pages[0].Id" />
<input type="hidden" name="User.Pages[2].Id" />



и тогда на сервер придет только одна первая page, как тогда быть? Самому перед сабмитом править индексы?

забудь про это гауно в виде индексов.

Код: html
1.
2.
3.
<input type="hidden" name="Pages" value="2" />
<input type="hidden" name="Pages" value="23" />
<input type="hidden" name="Pages" value="11" />



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public class UserPagesModel
{
    public int[] Pages {get;set;}  
}

[Route("pages/{userId}"), HttpPost]
public ActionResult SaveOrUpdate(int userId, UserPagesModel model)
{
    var user = SomeService.GetUser(userId);
    if(user == null)
        return HttpNotFound();
    
     model.Pages // вот твои Pages в виде коллекции Id

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

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
<td class="ui-droppable" id="availablePages">
	@foreach (var page in Model.AvailablePages)
	{
		<div class="ui-draggable">
			@page.Name
                        <input type="hidden" name="Pages" value="@page.Id" />
		</div>
	}
</td>



и не слушай отдельных неадекватов, дающих "рецепты", которым даже на помойке стыдно находиться.
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631607
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Упоротый хвост вещает о целомудрии и верной архитектуре? Детский сад Он уже раз 10 успел обделаться по самые уши за последние несколько дней, тут грядёт тоже самое. Все тру дяди используют штатную индексацию без левых атрибутовых костылей над пост методами. Но некоторые утырки таки хотят заебать себя лапшекодом. Не будем им мешать.
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631642
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мссущко,

Прекращай истерику. Индексация это гауно неюзабельное, адский костыль.
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631646
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttМссущко,

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


maratossи тогда на сервер придет только одна первая page, как тогда быть? Самому перед сабмитом править индексы?
Штатная индексация
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
    @foreach (var p in Model.Pages)
    {
            <div class="ui-draggable">
                <input type="hidden" name="Pages.Index" value="@p.Id" />
		<input type="hidden" name="Pages[@p.id].id" value="@p.Id" />
                @p.Name       
            </div>       
    }



и никаких педалей
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631660
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Стараюсь всегда использовать хелперы, для данной задачи @Html.Hidden.
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631671
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкоhVosttМссущко,

Прекращай истерику. Индексация это гауно неюзабельное, адский костыль.
Истерики нет. Есть четкое понимание - лучше прозрачная индексация и нативные методы контроллеров, чем атрибутный хаос.

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

Истерики нет. Есть четкое понимание - лучше прозрачная индексация и нативные методы контроллеров, чем атрибутный хаос.

Если индекс идёт не по порядку, а это как раз случай автора, то коллекция не получается. Единственный способ как-то заставить работать с индексом это с помощью яваскрипта перед сабмитом мере индексировать поля. Более убогого решения придумать очень сложно. Так что на помойку это унылое гавно.
Какой нафик порядок, он никому не нужен. Если нужно отследить, например, только измененные элементы, это делается так:
http://codearticles.ru/articles/2286
http://codearticles.ru/articles/2289
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631738
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкоКакой нафик порядок, он никому не нужен. Если нужно отследить, например, только измененные элементы, это делается так:
http://codearticles.ru/articles/2286
http://codearticles.ru/articles/2289

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

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

готовить правильно нужно
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631741
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttмсущкоКакой нафик порядок, он никому не нужен. Если нужно отследить, например, только измененные элементы, это делается так:
http://codearticles.ru/articles/2286
http://codearticles.ru/articles/2289

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

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

maratossно встала проблема - индексы у хидденов не могут быть через один
т.е. у меня содержимое #userPages может получиться такое:
Код: html
1.
2.
<input type="hidden" name="User.Pages[0].Id" />
<input type="hidden" name="User.Pages[2].Id" />



?
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631754
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttИзопропил1) получается, причём со стандартным DefaultModelBinder

maratossно встала проблема - индексы у хидденов не могут быть через один
т.е. у меня содержимое #userPages может получиться такое:
Код: html
1.
2.
<input type="hidden" name="User.Pages[0].Id" />
<input type="hidden" name="User.Pages[2].Id" />



?

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

тут они и не могут находиться по порядку, потому что набор инпутов в группу происходит на клиенте. единственный выход, если прям усраться как нужны индексы, это перед сабмитов надо будет пройтись по инпутам и "переиндексировать".

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

Это могут быть строки, но для этого байндер должен получить перечень индексов
Который собственно в примере и формируется:
Код: html
1.
 <input type="hidden" name="Pages.Index" value="@p.Id" />


Члены коллекции индексируются не последовательными целыми, а ключами
Код: html
1.
2.
<input type="hidden" name="Pages[@p.Id].Id" value="@p.Id" />
<input type="text" name="Pages[@p.Id].Name" value="@p.Name" />



Неверующие могут посмотреть реализацию DefaultModelBinder.cs (UpdateCollection, GetIndexes)
или ознакомиться с ответами http://stackoverflow.com/questions/14822615/how-does-mvc-4-list-model-binding-work
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631779
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttно факт в том, что индексы в данному случае нах не нужны.
А какие с ними сложности?
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631787
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкоЭто бред. Индексы должны быть по-порядку
http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx/ (Non-Sequential Indices)

обратите внимание на дату публикации
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631792
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ИзопропилмсущкоЭто бред. Индексы должны быть по-порядку
http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx/ (Non-Sequential Indices)
обратите внимание на дату публикации
Таки я не вижу проблем делать индексы по-порядку. Новые элементы, созданные на клиенте, добавлять с последующим индексом. Если что-то удалили, индексы не пересчитывать, т.к. всё и так отлично пойдет в контроллер. Проблема надумана, всё работает в штатном порядке.
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631797
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Хвост, я не совсем понял, что ты хотел - это не работает.

@using (Html.BeginForm())
{
    <table>
        @{
            int i = 0;
            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++;
            }
        }
    </table>
    <input type="submit" value="Сохранить" />
}





[Route("items"), HttpPost]
public ActionResult Index(MainModel model)
{
if (!ModelState.IsValid)
{
return View(model);
}

return RedirectToAction("Index");
}

Или ты о чём?
...
Рейтинг: 0 / 0
[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
[MVC] редактирование коллекции
    #38631913
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По моему всё ясно и прозрачно (DefaultModelBinder.cs):
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
        private static void GetIndexes(ModelBindingContext bindingContext, out bool stopOnIndexNotFound, out IEnumerable<string> indexes)
        {
            string indexKey = CreateSubPropertyName(bindingContext.ModelName, "index");
            ValueProviderResult valueProviderResult = bindingContext.ValueProvider.GetValue(indexKey);

            if (valueProviderResult != null)
            {
                string[] indexesArray = valueProviderResult.ConvertTo(typeof(string[])) as string[];
                if (indexesArray != null)
                {
                    stopOnIndexNotFound = false;
                    indexes = indexesArray;
                    return;
                }
            }

            // just use a simple zero-based system
            stopOnIndexNotFound = true;
            indexes = GetZeroBasedIndexes();
        }
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631914
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

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

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

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

выносите поциента

нарисуй, что ты будешь делать со своим массивом, если требуется кроме удаления/пополнения коллекции Pages, потребуется редактировать page.Name?
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631930
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущко,
а вы че ребята все стреляете?(с)
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631940
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где-то в степимсущко,
а вы че ребята все стреляете?(с)
Мы - да, а вот хвост всё с холостых шмаляет, всё маслины никак не кончатся
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631943
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилhVosttИзопропил,

выносите поциента

нарисуй, что ты будешь делать со своим массивом, если требуется кроме удаления/пополнения коллекции Pages, потребуется редактировать page.Name?

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

Узбагойся и не ссы :))
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631946
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttИзопропилпропущено...
нарисуй, что ты будешь делать со своим массивом, если требуется кроме удаления/пополнения коллекции Pages, потребуется редактировать page.Name?
Это другая задача. Ты почему-то решаешь её, а не ту которую решает автор.
Перетасовывать инты в массиве - ну и задачка поди, всем задачкам задачка
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631947
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КhVosttИзопропил,

выносите поциента Не надо злить Изопропила, особенно когда он прав.

В чем он прав? Насаживает решение своей задачи?
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631951
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущко,
Да ну вас, даже читать лень ( все понятно) вы как маркетмейкеры на бирже, когда нет объемов и волатильности, те двигают рынок, что бы создать иллюзию что он живой )) пошёл я в баню попарюсь после базы ))
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631955
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttЭто другая задача. Ты почему-то решаешь её, а не ту которую решает автор.
Хорошо, изобрази решение "моей" задачи
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38631956
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей Кпропущено...
Не надо злить Изопропила, особенно когда он прав.

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

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

отлично смотришься

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

защем? твоё решение твоей задачи вполне кошерно
...
Рейтинг: 0 / 0
[MVC] редактирование коллекции
    #38632643
maratoss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем кстати спасибо, сделал как тут
http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx/
...
Рейтинг: 0 / 0
68 сообщений из 68, показаны все 3 страниц
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / [MVC] редактирование коллекции
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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