Отправка массива пар Guid в действие - PullRequest
0 голосов
/ 25 января 2012

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

У меня такой вопрос: какой тип данных я должен использовать на действии сервер / MVC, чтобы получить данные, хранящиеся в поле textarea / hidden?

В данный момент у меня есть строка, и я собираюсь выполнить загрузку .split () и все такое, но это не так!

В конечном итоге мне нужна какая-то вещь IEnumerable<Guid, Guid>?!?! так что я могу сделать foreach и получить каждую пару идентификаторов.

Я уверен, что ответ будет простым, но я не могу придумать, что делать.

Любая помощь приветствуется.

Ответы [ 2 ]

1 голос
/ 25 января 2012

Если в вашем пользовательском интерфейсе есть несколько полей формы с одинаковыми именами, они будут отправлены в ваш метод действия и правильно привязаны к массиву.Мы могли бы использовать string[] для этого случая.

<form action="">
  <input type="text" name="guids"/>
  <input type="text" name="guids"/>
  <input type="text" name="guids"/>
  <input type="text" name="guids"/>
  <input type="submit" value="Submit"/>
</form>

Тогда ваш контроллер может обработать их следующим образом:

public ActionResult MyAction(string[] guids)
{
    guids.Count == 4 // if all four fields were filled in.
}

Обратите внимание, что если отправлено только одно значение guidsпо форме string[] guids все равно будет работать - он будет содержать только один элемент.

Наконец, обратите внимание, что если значения не введены, значение массива будет нулевым, а не пустым массивом.

0 голосов
/ 25 января 2012

Вы можете привязать список к вашей модели, посмотрите на этот пост

http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx

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