2009-07-20 4 views
2

MVC 컨트롤러에 다음과 같은 서명을하고 싶습니다.ASP.NET MVC 모델 바인더. 객체 배열이있는 컨트롤러를 호출하십시오.

public ActionResult Create(Persons[] p) 
{ 

} 

이런 식으로 할 수 있습니까?

EDIT : 특수 기호로 구분 된 이름 목록을 제출하여 개인 오브젝트 배열을 얻고 싶습니다. 예를 들어 나는 형태

<form> 
    <input name="person_name">Max|Alex|Andrew</input> 
</form> 

나는 그것이 IModelBinder 인터페이스를 구현하여 수행해야하지만이 작업을 수행하는 방법에 어떤 예를 찾을 수 없습니다 가정에게 제출합니다.

답변

3

오 이런 방법을 찾았습니다. 위해 Application_Start() 함수 Global.asax 파일에서

기입한다 : 사용자 바인더 등록 이와 같이

ModelBinders.Binders(typeof(Person[])) = new PersonBinder(); 

.

0

나는 이런 종류의 일이

<input type="text" name="Person[1].name" /> 
0

당신이 a custom controlleractioninvoker 함께 놀러해야 할 수도 있습니다 작동합니다 생각합니다.

아니면 그냥 일반 modelbinder

앤드류

+0

아니요. 단일 값 인수에서만 작동합니다. –

+0

모든 유형에서 작동합니다. "Persons []"는 정확히 "Persons"가 정확히 –

2

예. DefaultModelBinder으로 바인딩 된 컬렉션을받는 방법은 this question을 참조하십시오.

+0

인 유형입니다. 사용자 정의 모델 바인더를 통해이 작업을 수행 할 수 있습니까? –

+0

네,하지만 DefaultModelBinder가 이해하는 패턴을 따르는 한, 그렇게 할 필요는 없습니다. –