3
는이 같은 기능을 얻기 위해 배열을 전달하는 방법을 알고 /?index=1&index=5&index=3
패스 배열/ASP.NET 웹 API
을하지만이 같은 배열을받을 수 있어야합니다 : /?index=[1,5,3]
또는 비슷하게 짧은 것. 내가 사용할 수 있는게있어?
는이 같은 기능을 얻기 위해 배열을 전달하는 방법을 알고 /?index=1&index=5&index=3
패스 배열/ASP.NET 웹 API
을하지만이 같은 배열을받을 수 있어야합니다 : /?index=[1,5,3]
또는 비슷하게 짧은 것. 내가 사용할 수 있는게있어?
사용자 정의 ModelBinder
사용하여 Global.asax
에 등록 그런
public class JsArrayStyleModelBinder : DefaultModelBinder
{
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var value = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
if (value == null)
return null;
return new JavaScriptSerializer().Deserialize<string[]>(value.AttemptedValue);
}
}
을 : 직접
ModelBinders.Binders.Add(typeof(string[]), new JsArrayStyleModelBinder());
또는 당신의 Action
매개 변수에 :
[HttpGet]
public ActionResult Show([ModelBinder(typeof(JsArrayStyleModelBinder))] string[] indexes)
'JavaScriptSerializer' 대신'String.Split'을 사용할 수도 있습니다. – haim770
이 도움이 될 수 있습니다 : HTTP : //stackoverflow.com/questions/6243051/how-to-pass-an-array-within-a-query-string 이를 테스트하는 한 가지 방법은 다중 선택, 여러 옵션 선택 및 요청 서식 지정 방법과 서버 해석 방법을 통해 GET 동작을 사용하여 양식을 작성하는 것입니다. – David
대체 솔루션 양식을 사용해 보셨습니까? http://stackoverflow.com/questions/9981330/how-to-pass-an-array-of-integers-to-a-asp-net-web-api-rest- 서비스? rq = 1? – nemesv