コントローラーでメソッドを作成していくつかの引数を入れて、フォームの送信をクリックした後でそれをどのように把握できるのでしょうか?フードの下では、それはどのように適切な方法を見つけるのですか、私はただそれらの議論がほしいと思う方法を理解していますか?一言で言えばどのようにasp.net mvcはそれを把握しますか?
答えて
:
ルーティングエンジンのHttpRequestを処理し、要求されたURLをチェックします。最初のルート一致が検出されると、新しいインスタンス
MvcRouteHandler
が作成され、URLの分割されたトークンがRouteValueDictionaryに渡されます。ルートの
MvcRouteHandler
が要求を受け取り、コントローラクラスインスタンスをインスタンス化しようとします。規約上、 "XXXXXXController"と呼ばれるクラスが検索されます。ここで、Xはルート内の{controller}パラメータに置き換えられます。コントローラーを見つけると、ルートの{action}パラメーターで指定された適切なメソッドが呼び出されます。ルートに存在する{id}などの名前付き引数はすべて、メソッドにパラメータとして渡されます。
基本的に、ASP.Net MVCが "知っている"ものはすべてルート情報から得られます。薄い空気からパラメータを分けることはできません - それらはルート解析から来なければなりません。情報が要求されたURLに存在しない場合、メソッドに渡すことはできません。
また、MvcRouteHandler
の代わりに代替ハンドラを使用するようにすることで、フレームワークの動作を変更することができます。フレームワークは非常に拡張性が高いので、多くの点でカスタム機能を組み込むことができます。
コントローラ、アクション、ビューの解像度、およびModelBindersのコードがかなりあります。あなたがフレームワークの特定の部分を見て、より詳細な質問をして多くの答えを得ることが、おそらくあなたにとって最高のものになるでしょう。
幸運にも、ASP.NET MVC framework has been open-sourcedだから、どういう仕組みが好奇心ならば、get the codeで自分で調べることができます。その優れたコードを読んで、あなたは何かを学ぶことが確実です。
しかし、あなたの質問には、System.Web.Mvc.MvcHandlerクラスとSystem.Web.Mvc.ControllerActionInvokerクラスを参照する必要があります。これは、あなたの質問に答える正しいパスを導くはずです。
- 1. どのようにCSSのバグを把握するには?
- 2. コンピュータはどのように日付情報を把握していますか?
- 3. どのようにMySQLのインデックスのサイズを把握する
- 4. SQLはどこで参加し、私はどのように把握しようとしています
- 5. PyQt:どのエンコーディングが使用されているかをどのように把握しますか?
- 6. javascriptでどの関数が参照されているかはどのように把握できますか?
- 7. どのように多くのSDカードアンドロイドデバイスを運ぶかを把握する
- 8. どのハッシュ関数が使用されたかをどのように把握できますか?
- 9. smtpサーバホストを把握
- 10. どのような種類の電話がASP.NET Webサービスを使用しているのか、どのように把握できますか?
- 11. Apacheが実行しているユーザーとグループを把握するにはどうすればよいですか?
- 12. コマンドラインからコンピュータのアーキテクチャを把握するにはどうすればよいですか?
- 13. WebサービスのWSDLを把握するにはどうすればよいですか?
- 14. iOS:viewWillAppearで現在の方向を把握するにはどうすればよいですか?
- 15. ASP.NET MVCはどのようにJsonResultsを生成しますか?
- 16. 集合住宅の平均住宅価格を簡潔にどのように把握していますか?
- 17. ASP.NET MVCでルーティングはどのように行われますか?
- 18. 私のウェブサイトのfb認証フローを把握しようとしています
- 19. どのボタンがクリックされたか把握する方法
- 20. ASP.net MVC - ビューはどのようにモデルにアクセスしますか?
- 21. ネットワーク上のワークステーションとサーバーの違いをどのように把握していますか?
- 22. JavaScript window.getSelection()は把握できません
- 23. ASP.NET MVC UpdateModel()メソッドはどのように機能しますか?
- 24. Authorizeタグはどのように機能しますか? - ASP.NET MVC
- 25. Url.Actionはどのように動作しますか?Asp.net MVC?
- 26. Rubyプログラミングで必要なパスをどのように設計/把握しますか?
- 27. ASP.NET MVCはASP.NETにどのように接続されていますか?
- 28. Node.jsの子は、私は、これはNode.jsの子プロセスのためのまともなユースケースになるかどうかを把握しようとしている
- 29. facebook iFrameクライアントの把握
- 30. {s:;}タグが意味するものとそれらがどこから来たのか把握しようとしています
ルートまたはフォームフィールドコレクションから。 – GalacticCowboy
フォームフィールドコレクションはリクエストに伴いますが、ASP.Net MVCがどのように処理するかには影響しません。フォームは特定のURL(通常はビューを生成したコントローラと同じコントローラ)に送信され、そのURLはルーティングエンジンによって処理されます。 – womp