3

次のように Get 関数に配列を渡す方法を知っています。/?index=1&index=5&index=3

しかし、次のような配列を受け取ることができる必要があります。/?index=[1,5,3]

または同様に短いもの。使えるものはありますか?

4

1 に答える 1

2

カスタムを使用しますModelBinder:

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);
    }
}

次に、それをあなたに登録しますGlobal.asax

ModelBinders.Binders.Add(typeof(string[]), new JsArrayStyleModelBinder());

または直接あなたのActionパラメータに:

[HttpGet]
public ActionResult Show([ModelBinder(typeof(JsArrayStyleModelBinder))] string[] indexes)
于 2013-07-18T16:08:56.193 に答える