У меня есть следующие классы:
public class Movie
{
string Name get; set;
string Director get; set;
IList<Tag> Tags get; set;
}
public class Tag
{
string TagName get; set;
}
На Действие моего контроллера я связываю так: public ActionResult Create([ModelBinder(typeof(MovieBinder))]Movie mo)
на MovieBinder я конвертирую строку в List<tag>
. Это когда я отлаживаю работает.
на подшивку фильма у меня есть следующий код:
if (propertyDescriptor.Name == "Tags")
{
var values = bindingContext.ValueProvider.GetValue(propertyDescriptor.Name);
if (values != null)
{
var p = values.AttemptedValue.Replace(" ", "");
var arrayValues = p.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
var list = new List<Tag>();
foreach (string item in arrayValues)
{
list.Add(new Tag() { TagName = item });
}
value = list;
}
}
Но я получаю следующую ошибку в состоянии модели:
Exception = {"Преобразование параметра из типа 'System.String' в тип 'Models.Tag' завершилось неудачно, поскольку преобразователь типов не может преобразовать эти типы."}
Я создаю Папку для тегов, но она не работает, есть идеи?
Спасибо!