Не может заставить мой массив ввода HTML сериализировать в Список <строка> у Asp. Сеть mvc

Я пытаюсь реализовать систему меток в свой проект MVC asp.net. Когда пользователь редактирует или добавляет задачу, они могут добавить любое количество тегов, которые они хотят перед представлением. Я использую плагин Tagit JQuery, поэтому когда пользователь добавляет новый тег, поле ввода создается, который похож:

<input type="hidden" style="display:none;" value="tag1" name="Tags[]">

Когда пользователь нажимает кнопку отправки после добавления нескольких тегов, браузер отправляет следующий querystring на сервер (полученный через скрипача):

IsNew=True&Id=2222&Title=Test+Title&Description=Test+Description&Tags%5B%5D=Tag1&Tags%5B%5D=blah&Tags%5B%5D=another-tag

Теперь мой viewmodel, в который я сериализирую эти данные, имеет следующую структуру:

public class KnowledgeBaseTaskViewModel
{
    public int Id { get; set; }

    [Required(AllowEmptyStrings=false, ErrorMessage="Task title is required")]
    [StringLength(500)]
    public string Title { get; set; }

    [Required(AllowEmptyStrings=false, ErrorMessage="Task description is required")]
    [StringLength(500)]
    public string Description { get; set; }

    public List<string> Tags { get; set; }
    public bool IsNew { get; set; } // Needed to determine if we are inserting or not
}

Наконец мое действие получения имеет следующую подпись:

    [HttpPost]
    public ActionResult EditTask(KnowledgeBaseTaskViewModel task)

Проблема - то, что мой список тега не сериализирует правильно, и мои Теги списка являются пустыми. Я посмотрел на различные вопросы на этом сайте о том, как сериализировать массивы, но я все еще не вижу то, что я делаю неправильно. Любая справка значительно ценится.

1
задан KallDrexx 23 July 2010 в 14:06
поделиться

1 ответ

Похоже, то, что у вас есть, должно работать, но попробуйте изменить тип свойства Tags с List на IList. связыватель модели может не использовать конкретный тип List <>.

также ознакомьтесь с этой статьей Фила Хаака: http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx

2
ответ дан 2 September 2019 в 22:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: