私は現在、MVC コントロールの独自の実装を提供するためにオーバーライドを作成しています。オプションのパラメーターを使用して作業したいので、今解決したように、複数のオーバーライドを作成して維持する作業を節約できます。
私の呼び出しの例
public static MvcHtmlString MyControlFor<TModel, TValue>(this HtmlHelper<TModel> html
, Expression<Func<TModel, TValue>> expression
, object htmlAttributes = null
, params Expression<Func<TModel, object>>[] expressions)
オプションのパラメーターを使用していて、それらすべてを提供していない場合は、名前付きパラメーターを使用する必要があります。その場合、配列オブジェクトを params パラメーターに渡して機能させる必要があることも知っています。しかし、ここで私はこれを行う方法を理解できません。
次を呼び出すと、次のエラーが発生します (CS0826: 暗黙的に型指定された配列に最適な型が見つかりません)。
@Html.MyControlFor(x => x.property, expressions: new [] { x=>x.property2, x=>x.property3 });
コンパイラが Expression クラスを認識しないため、強い型の配列を渡すことも解決策ではないようです。したがって、以下は機能しないようです
@Html.MyControlFor(x => x.property
, expressions: new Expression<Func<TModel, object>>[] { x=>x.property2, x=>x.property3 });
これを機能させる方法を知っている人はいますか? それとも、オーバーライドを使い続ける運命にあるのでしょうか?