私は、ASP.NET MVC の学習を通じて、自分の道を歩んでいます。最近、ドロップダウン リストの項目を選択する必要があるかどうかを判断するのに役立つ拡張メソッドを作成しました。HTMLヘルパーメソッドについて知っています。ここで物事がどのように機能するかを学ぼうとしているだけです。とにかく、私は現在次のコードを持っています:
<select id="Gender">
<option value="-1" @Html.IsSelected(Convert.ToString(ViewBag.Gender), "-1")>Unspecified</option>
<option value="0" @Html.IsSelected(Convert.ToString(ViewBag.Gender), "0")>Male</option>
<option value="1" @Html.IsSelected(Convert.ToString(ViewBag.Gender), "1")>Female</option>
</select>
これを実行すると、次のようなコンパイル エラーが表示されます。
CS1973: 'System.Web.Mvc.HtmlHelper<dynamic>' has no applicable method named 'IsSelected' but appears to have an extension method by that name. Extension methods cannot be dynamically dispatched. Consider casting the dynamic arguments or calling the extension method without the extension method syntax.
私の質問は、ViewBag の値を使用して拡張メソッドを実行するにはどうすればよいですか? ViewBag.Gender をハードコードされた値に置き換えると、機能します。問題は ViewBag が動的な型であるという事実にあると思います。しかし、他にどのような選択肢がありますか?