4

ほとんどのフォームでカスタム エディター テンプレートを使用していますが、それらを使用してカスタム オブジェクト ピッカーをレンダリングしようとしているときに、含まれているコンテキストに関する情報をエディター テンプレートに渡す簡単な方法が見つかりませんでした。

具体的には、私のメイン フォームはドメイン オブジェクトの編集をレンダリングし、エディター テンプレートは、ドメイン オブジェクトの ID に依存するオブジェクトのリストを含む AJAX ピッカーをレンダリングする必要があります。現在、パラメーターを使用して ID を渡していadditionalViewDataますが、これはエラーが発生しやすいため、かなり見苦しいと思います。

私のフォームには、次のようなコードが含まれています。

@Html.EditorFor(model => model.CategoryId, new { id = model.id })

エディター テンプレートには、次のようなコードが含まれています。

@{
var domainObjectId = ViewData["id"] as int?;
}

カスタムModelMetadataProviderを使用してオブジェクト ピッカー エディター テンプレートを選択しています。同様の手法を使用して、含まれているモデルに関する情報をエディター テンプレートに渡したいと考えていますが、それは可能ではないようです。

だから、私の質問は次のとおりです。

  1. ModelMetadataProvider含むモデルに関する情報をエディターテンプレートに渡すために a を使用する方法はありますか?
  2. additionalViewDataそうでない場合、弱く型付けされたパラメーターを介してすべての追加情報を渡す以外に、私が試みていることを達成するためのよりきちんとした/より簡単な方法はありますか?

前もって感謝します!

4

2 に答える 2