匿名型を TextBox などの HtmlHelper メソッドに渡すと、RouteDataDictionary を使用してメンバーを抽出しない限り、バインド エラーが発生します (匿名型のメンバーは内部アクセスしかできないため) 。
(HtmlHelper 拡張機能) InputExtensions.TextBox メソッドが匿名型を受け入れることを確認したとき、内部で何らかの変換を行う必要があるか、同じエラーで失敗することがわかりました。
案の定、それは HtmlHelper.AnonymousObjectToHtmlAttributes メソッドを呼び出します。このメソッドのドキュメントは、問題に言及しないことで問題を軽視しようとします。代わりに、アンダースコアをダッシュに置き換えて、有効な属性名が使用されるようにすることを示唆しています。もちろん。ともかく...
その変換がどのように見えるかを正確に確認したかったのですが、ILSpy でその名前の HtmlHelper の静的メソッドを調べると、メソッドは自分自身を呼び出しているように見えます。ここで何が起こっているのですか?
public static RouteValueDictionary AnonymousObjectToHtmlAttributes(object htmlAttributes)
{
return HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes);
}