기본 모델 바인더는 다음 URL을 예상합니다.
http:
성공적으로 바인딩하려면 :
public ActionResult Multiple(int[] ids)
{
...
}
그리고 이것이 쉼표로 구분 된 값으로 작동하도록하려면 사용자 정의 모델 바인더를 작성할 수 있습니다.
public class IntArrayModelBinder : DefaultModelBinder
{
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var value = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
if (value == null || string.IsNullOrEmpty(value.AttemptedValue))
{
return null;
}
return value
.AttemptedValue
.Split(',')
.Select(int.Parse)
.ToArray();
}
}
그런 다음이 모델 바인더를 특정 작업 인수에 적용 할 수 있습니다.
public ActionResult Multiple([ModelBinder(typeof(IntArrayModelBinder))] int[] ids)
{
...
}
또는 모든 정수 배열 매개 변수에 전 세계적으로 적용 Application_Start
에 Global.asax
:
ModelBinders.Binders.Add(typeof(int[]), new IntArrayModelBinder());
이제 컨트롤러 작업은 다음과 같습니다.
public ActionResult Multiple(int[] ids)
{
...
}
[FromUri]
.public ActionResult Multiple([FromUri]int[] ids) {}
(GET)