ひっそりと生きるプログラマのブログ

日頃気になった事なりを書き留めるブログです。関心ごとは多くもう少し更新頻度を上げたいところです。

ASP.NET MVC - object から IDictionary<string, object> へ変換

View で側で利用する拡張メソッドを実装していると、
記述する際に任意の属性を指定したい場合があります。

その場合、HtmlHelper クラスの AnonymousObjectToHtmlAttributes メソッドを使用します。
HtmlHelper.AnonymousObjectToHtmlAttributes メソッド (System.Web.Mvc)

ASP.NET MVCソースコードも同様の実装をしているので、
そういった意味では踏襲した方が良いと考えられます。

以下は実装例。

public static IHtmlString Sample(
    this HtmlHelper htmlHelper, object htmlAttributes)
{
    return Sample(htmlHelper, HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes));
}

public static IHtmlString Sample(
    this HtmlHelper htmlHelper, IDictionary<string, object> htmlAttributes)
{
    // TODO
}

上記の拡張メソッドを View で利用する場合。

@Html.Sample(new { style = "color:red;" })