5

ASP.NET MVC AsyncController を実装する場合、xxxCompleted メソッドは Public である必要があります。これは、xxxCompleted メソッドを直接呼び出すことができることを意味するのか、それとも NonAction などを使用して内部的に保護されているのか疑問に思っています。

ありがとう。

4

1 に答える 1

2

内部的に (そして単純化すると)、MethodInfo構築された非同期コントローラーにアクションの配列があります。構築されると、アクションメソッド名からサフィックスAsyncCompletedサフィックスが取り除かれます。

この配列などのアクション メソッドを呼び出そうとするとIndexCompleted検索IndexCompletedされますが、配列に がないため (接尾辞が削除されているため)、AsyncControllerActionInvokerアクションが見つからなかったことが報告されます。

自分の目で確かめるために、ソース コードをざっと見てみる価値があります。

CodePlex 上の ASP.NET MVC 2 RTM

于 2010-10-18T00:01:07.373 に答える