熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

ASP.NET MVC 4框架:ASP.NET MVC上的Web應用

2013-11-13 12:32:30  來源: .NET編程 

    建立在迷你版 ASPNET MVC上的Web應用

  在正式介紹我們自己創建的迷你版ASPNET MVC的實現原理之前不妨來看看建立在該框架之上的Web應用如何定義通過Visual Studio創建一個空的ASPNET  Web應用(注意不是ASPNET MVC應用)並不會引用SystemWebMvcdll這個程序集所以在接下來的程序中看到的所謂MVC的組件都是我們自行定義的

  首先定義了如下一個SimpleModel類型它表示最終需要綁定到View上的數據為了驗證針對Controller和Action的解析機制SimpleModel定義的兩個屬性分別表示當前請求的目標Controller和Action

  public class SimpleModel

  {

  public string Controller { get; set; }

  public string Action { get; set; }

  }

  與真正的ASP NET MVC應用開發一樣我們需要定義Controller類按照約定的命名方式(以字符Controller作為後綴)我們定義了如下一個HomeControllerHomeController實現的抽象類型ControllerBase是我們自行定義的以自定義的ActionResult作為返回類型的Index方法表示Controller的Action它接受一個SimpleModel類型的對象作為參數該Action方法返回的ActionResult是一個RawContextResult對象顧名思義RawContextResult就是將指定的內容進行原樣返回在這裡我們將作為參數的SimpleModel對象的Controller和Action屬性顯示出來

  public class HomeController: ControllerBase

  {

  public ActionResult Index(SimpleModel model)

  {

  string content = stringFormat(Controller: {}<br/>Action:{}

  modelController modelAction)

  return new RawContentResult(content)

  }

  }

  ASPNET MVC根據請求地址來解析出用於處理該請求的Controller的類型和Action方法名稱具體來說我們預注冊一些包含Controller和Action名稱作為占位符的(相對)地址模板如果請求地址符合相應地址模板的模式Controller和Action名稱就可以正確地解析出來和ASPNET MVC應用類似我們在Globalasax中注冊了如下一個地址模板({controller}/{action})我們還注冊了一個用於創建Controller對象的工廠RouteTableControllerBuilder和DefaultControllerFactory都是我們自定義的類型

  public class Global : SystemWebHttpApplication

  {

  protected void Application_Start(object sender EventArgs e)

  {

  RouteTableRoutesAdd(default

  new Route{Url = {controller}/{action}})

  ControllerBuilderCurrentSetControllerFactory(

  new DefaultControllerFactory())

  }

  }

  正如上面所說的ASPNET MVC是通過一個自定義的HttpModule實現的在這個迷你版ASPNET MVC框架中我們也將其起名為UrlRoutingModule在運行Web應用之前我們需要通過配置對該自定義HttpModule進行注冊下面是相關的配置

  <configuration>

  <systemwebServer>

  <modules>

  <add name=UrlRoutingModule

  type=WebAppUrlRoutingModule WebApp/>

  </modules>

  </systemwebServer>

  </configuration>

  到目前為止所有的編程和配置工作已經完成為了讓定義在HomeController中的Action方法Index來處理針對該Web應用的訪問請求我們需要指定與之匹配的地址(符合定義在注冊地址模板的URL模式)如圖所示由於在浏覽器中輸入地址(http://…/Home/Index)正好對應著HomeController的Action方法Index所以對應的方法會被執行而執行的結果就是將當前請求的目標Controller和Action的名稱顯示出來(S

  圖  采用符合注冊的路由地址模板的地址訪問Web應用

  上面演示了如何在我們自己創建的迷你版ASPNET MVC框架中創建一個Web應用從中可以看到和創建一個真正的ASPNET MVC應用別無二致接下來我們就來逐步地分析這個自定義的ASPNET MVC框架是如何建立起來的而它也代表了真正的ASPNET MVC框架的工作原理

       返回目錄ASPNET MVC 框架揭秘

       編輯推薦

       ASP NET開發培訓視頻教程

       Microsoft NET框架程序設計視頻教程

       Java程序性能優化讓你的Java程序更快更穩定

       Visual C++音頻/視頻技術開發與實戰

 


From:http://tw.wingwit.com/Article/program/net/201311/16113.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.