나는 추상 클래스를 사용하는 간단한 Poco-Model을 가지고 있으며 Asp.net MVC 2의 기본 ModelBinder에서는 작동하지 않는 것으로 보인다. 하나의 항목에 컬렉션의 객체가 여러 개있다. 모두 동일한 추상 기본 클래스를 사용합니다.Asp.Net MVC 2 추상 클래스를 사용하는 DefaultModelBinder 오류
모델 :
public partial class Item
{
public virtual ICollection<Core.Object> Objects
{
get
{
return _objects;
}
set
{
if (value != _objects)
{
_objects = value;
}
}
}
private ICollection<Core.Object> _objects;
}
public abstract partial class Object
{
public virtual Item Item
{
get
{
return _item;
}
set
{
if (!Object.ReferenceEquals(_item, value))
{
_item = value;
}
}
}
private Item _item;
}
public partial class TextObject : Object
{
public virtual string Text { get; set; }
}
인스턴스 : 나는 그 같은 HTML 입력 필드를 얻는 객체 컬렉션에서 하나의 TextObject와 해당 항목에 대한
var NewItem = new Item();
var TextObject1 = new TextObject
{
Text = "Text Object Text",
Item = NewItem
};
List<Core.Object> objects = new List<Core.Object>(){TextObject1};
NewItem.Objects = objects;
기본 Html.EditorForModel을 사용하여() 도우미 :
<input class="text-box single-line" id="Objects_0__Text" name="Objects[0].Text" type="text" value="Text Object Text" />
컨트롤러에 다시 게시 할 때 "초록을 만들 수 없습니다. c 기본 ModelBinder에서 오류가 발생했습니다. 분명히 바인더는 추상 기본 클래스를 인스턴스화하려고합니다. 하지만 컬렉션에 상속 된 TextObject 유형의 객체 만 있기 때문에 왜 그런지 모르겠습니다. 사용자 정의 Modelbinder를 작성하지 않고도이 작업을 수행 할 수있는 다른 방법이 있습니까?
감사에 대한 링크가 더 긴 토론, 나는 시도 automapper 줄 것이다. 파생 된 객체 유형의 n 개 목록을 viewmodel에 넣을 것을 권장 하시겠습니까? (목록, 목록 등) –
user250773