Как список сохраняется на контроллере в MVC3 с помощью Razor? - PullRequest
1 голос
/ 14 апреля 2011

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

Например, так: пользователь находится в документе и хочет отправить сообщение другим пользователям этого документа.

Нажмите кнопку сообщения

На экране сообщения отобразится списокполучатели, уже заполненные из ViewModel

Пользователь нажимает X, чтобы удалить одного или нескольких получателей

Сообщение типов пользователя

Пользователь нажимает Отправить

Контроллер получает модель сзаполненное сообщение и список получателей

Как мне убедиться, что список является измененным списком?

1 Ответ

1 голос
/ 14 апреля 2011

Сделайте так, чтобы ваш HTML выглядел примерно так:

<form ... blah blah ...>
    <ul>
        <li>
            recipient 1
            <input type="hidden" name="theParameterInControllerAction.Recipients[0]" value="1" />
        </li>
        <li>
            recipient 2
            <input type="hidden" name="theParameterInControllerAction.Recipients[0]" value="2" />
        </li>
        ...
    </ul>
    <textarea name="theParameterInControllerAction.Message" ... blah blah ... ></textarea>
    <input type="submit" value"click me" />
</form>

Настройте вашу модель и контроллер для принятия формы в соответствии с тем, как я выложил эти name атрибуты. Затем используйте javascript, чтобы удалить li, как вам нужно на месте. Тогда у вас есть два варианта:

  1. найти связыватель модели MVC, который связывается со списками, даже если индексы не в порядке (потому что вы можете удалить получателя 2, и тогда ваш контроллер увидит 0,2,3,4, ...)
  2. используйте javascript, чтобы перехватить событие post этой формы и переписать атрибуты name скрытых входных данных выше

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...