私はこれを開始し、少なくとも非常にラフな/初期のバージョンを機能させることができました。まだすべてのインとアウトを処理するわけではありませんが、私はこれに取り組んでいきます。
これまでに行ったのは、追加のスタイリングに役立つdivでドロップダウンを囲むことだけです。まだ名前を付けたり、html属性を追加したりすることはできません。
同じことをしようとしている人のために、これまでに次のことを行っています。これは、自分のニーズに合わせて修正できます。
/// <summary>
/// Extension method for displaying a custom dropdownlist
/// </summary>
public static MvcHtmlString CustomDropDownListFor<TModel, TValue>(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression, IEnumerable<SelectListItem> selectList, IDictionary<String, Object> htmlAttributes)
{
StringBuilder ItemsStringBuilder = new StringBuilder();
foreach (SelectListItem SingleListItem in selectList)
{
ItemsStringBuilder.AppendLine(DropDownExtensions.ListItemToOption(SingleListItem));
}
TagBuilder SelectTagBuilder = new TagBuilder("select")
{
InnerHtml = ItemsStringBuilder.ToString()
};
TagBuilder OuterTag = new TagBuilder("div")
{
InnerHtml = SelectTagBuilder.ToString()
};
OuterTag.Attributes.Add("class", "styled-select");
return MvcHtmlString.Create(OuterTag.ToString(TagRenderMode.Normal));
}