1

匿名型を TextBox などの HtmlHelper メソッドに渡すと、RouteDataDictionary を使用してメンバーを抽出しない限り、バインド エラーが発生します (匿名型のメンバーは内部アクセスしかできないため) 。

(HtmlHelper 拡張機能) InputExtensions.TextBox メソッドが匿名型を受け入れることを確認したとき、内部で何らかの変換を行う必要があるか、同じエラーで失敗することがわかりました。

案の定、それは HtmlHelper.AnonymousObjectToHtmlAttributes メソッドを呼び出します。このメソッドのドキュメントは、問題に言及しないことで問題を軽視しようとします。代わりに、アンダースコアをダッシュ​​に置き換えて、有効な属性名が使用されるようにすることを示唆しています。もちろん。ともかく...

その変換がどのように見えるかを正確に確認したかったのですが、ILSpy でその名前の HtmlHelper の静的メソッドを調べると、メソッドは自分自身を呼び出しているように見えます。ここで何が起こっているのですか?

public static RouteValueDictionary AnonymousObjectToHtmlAttributes(object htmlAttributes)
{
    return HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes);
}
4

1 に答える 1

0

System.Web.MVC.HtmlHelper のメソッド AnonymousObjectToHtmlAttributes が、System.Web.WebPages.Html.HtmlHelper から同じ名前のメソッドを呼び出しています。

ILSpy はそれについて明確に述べていません。クラスがどこから来ているかを示すために、クラスにカーソルを合わせる必要がありました。

ここに画像の説明を入力

ここで回答された同様の質問をしました。

于 2016-05-15T15:36:44.463 に答える