MVC 3でWebFormを使用します.

3303 ワード

MvcとWebFormはずっと論争のある二つのプラットフォームです.園子の中にも多くの人がこの方面の文章を書いています.印象的なのは去年の時に見た二篇の文章です.
http://www.cnblogs.com/mikelij/archive/2012/05/13/2496768.html著者はwebformでよく見られるview stateを切り口として解説していますが、書いたのはいいです.行ってみてください.webformのview stateに比べて、mvcに対して、私の第1感じは軽くて、簡潔で、もちろん、mvcもその他の多くの長所があって、興味がある子供用の靴は自分で谷姉を持つことができて、これは本文の重点ではありませんて、私は対比をしませんでした:).
mvcとwebformにはそれぞれメリットがありますので、必要に応じてプロジェクトで全部使うことができます.そこで問題が発生しました.mvcは配置路の由来を通じて訪問できると知っています.彼らは一つのプロジェクトの中で、webformはどうやって訪問しますか?MSDNを調べに行きました.asp.net 4.0からwebformにもルートが使えると分かりました.  はい、全部ルートを使うことができるなら、私はむだ話をしないで、直接始めましょう.
新規プロジェクトは以下の通りです.
在MVC3中使用WebForm
コントロールでレポートを開発するのはとても早いことを認めます.
次にGlobal.asax.csにroutes.IgnoreRouteを加えます.
そしてアドレスでアクセスします.  http://www.cnblogs.com/mikelij/archive/2012/07/09/2581768.html 
結果は以下の通りです
在MVC3中使用WebForm
時には私達はwebformsフォルダが現れたくないです.この時に私達は一つの種類を書いてIrouteHandlerを受け継ぐことができます.
public class WebFormsRouteHandler : IRouteHandler

    {

        

       public IHttpHandler GetHttpHandler(RequestContext requestContext)

        {

            string moduleName = requestContext.RouteData.GetRequiredString("module");

            string pageName = requestContext.RouteData.GetRequiredString("page");



            return BuildManager.CreateInstanceFromVirtualPath(string.Format("~/WebForms/{0}/{1}.aspx",moduleName, pageName),typeof(System.Web.UI.Page)) as IHttpHandler;

        }

  }
Global.asax.csに新しいルートルールを追加します.
 routes.Add(new) Route(「Web/{module}/{page}」new WebForms RouteHandler();
私たちはまた住所を通します.  http://msdn.microsoft.com/zh-cn/library/dd329551(d=lightweight).aspx アクセス
効果は以下の通りです
在MVC3中使用WebForm