現在、私はパラメータとしてList<T>
を受け入れるIActionFilter
を持っています。このアクションメソッドでは、投稿されたビューモデル値を調べます。これは次のようになります。カスタムモデルバインダーに掲載された値にアクセスする
[HttpPost]
public async Task<IActionResult> SavePage(List<BaseField> fields)
{
for (var i = 0; i < fields.Count; i++)
{
if (fields[i].Type == "bb")
{
var inputObj = new InputConfigViewModel();
await TryUpdateModelAsync(inputObj, $"fields[{i}]");
}
if (fields[i].Type == "ee")
{
var tObj = new TextareaConfigViewModel();
await TryUpdateModelAsync(tObj, $"fields[{i}]");
}
}
return RedirectToAction("Index", "Dashboard");
}
これまでの動作です。しかし、このコードをカスタムModelBinder
クラスに抽象化したいと思います。
public class BaseFieldModelBinder : IModelBinder
{
public Task BindModelAsync(ModelBindingContext bindingContext)
{
// Need access to "List<BaseField> fields"...
return Task.CompletedTask;
}
}
どのように私は私ができるように私のController
にアクションメソッドから、私のModelBinder
でList<BaseField> fields
値にアクセス入手できますか?