共用方式為


新增控制器 (VB)

作者 :Rick Anderson

本教學課程將教導您使用 Microsoft Visual Web Developer 2010 Express Service Pack 1 建置 ASP.NET MVC Web 應用程式的基本概念,這是免費的 Microsoft Visual Studio 版本。 開始之前,請確定您已安裝下列必要條件。 您可以按下列連結來安裝所有元件: Web Platform Installer。 或者,您可以使用下列連結個別安裝必要條件:

如果您使用 Visual Studio 2010 而非 Visual Web Developer 2010,請按下列連結來安裝必要條件: Visual Studio 2010 必要條件

具有 VB.NET 原始程式碼的 Visual Web Developer 專案隨附於本主題中。 下載 VB.NET 版本。 如果您想要 C#,請切換至本教學課程的 C# 版本

MVC 代表 model-view-controller。 MVC 是開發應用程式的模式,讓每個元件都有個別的責任:

  • 模型:應用程式的數據。
  • 檢視:您的應用程式將用來動態產生 HTML 回應的範本檔案。
  • 控制器:處理應用程式傳入 URL 要求的類別、擷取模型數據,然後指定檢視範本,以轉譯對用戶端的回應。

我們將涵蓋本教學課程中的所有概念,並示範如何使用它們來建置應用程式。

以滑鼠右鍵按兩下 方案總管中的 Controllers 資料夾,然後選取[新增控制器],以建立新的控制器。

AddController

將您的新控制器命名為 「HelloWorldController」,然後按兩下 [ 新增]。

2AddEmptyController

請注意,方案總管 右側已為您建立名為 HelloWorldController.cs 的新檔案,並在 IDE 中開啟檔案。

在新的 public class HelloWorldController 區塊內,建立兩個看起來像下列程序代碼的新方法。 我們將直接從控制器傳回 HTML 字串作為範例。

Namespace MvcMovie
    Public Class HelloWorldController
        Inherits System.Web.Mvc.Controller

        Public Function Index() As String
            Return "This is my default action..."
        End Function

        Public Function Welcome() As String
            Return "This is the Welcome action method..."
        End Function

    End Class
End Namespace

您的控制器命名 HelloWorldController 為 ,且您的新方法名稱為 Index。 執行應用程式 (按 F5 或 Ctrl+F5) 。 一旦瀏覽器啟動時,請將 「HelloWorld」 附加至網址列中的路徑。 (在我的電腦上,) http://localhost:43246/HelloWorld 您的瀏覽器看起來會像下面的螢幕快照。 在上述方法中,程式代碼會直接傳回字串。 我們告訴系統只傳回一些 HTML,而且這麼做了!

顯示瀏覽器的螢幕快照,其中含有文字:這是視窗的默認動作。

ASP.NET MVC 會根據傳入 URL 叫用不同的控制器類別, (和它們內的不同動作方法) 。 ASP.NET MVC 所使用的預設對應邏輯會使用如下的格式來控制叫用的程式代碼:

/[Controller]/[ActionName]/[Parameters]

URL 的第一個部分會決定要執行的控制器類別。 因此 /HelloWorld 會對應至 HelloWorldController 類別。 URL 的第二個部分會決定要執行的類別上的動作方法。 因此 ,/HelloWorld/Index 會導致 Index 類別的 HelloWorldController 方法執行。 請注意,我們只需要流覽上述 /HelloWorld ,而且 Index 預設會使用 方法。 這是因為如果未明確指定方法,則名為 Index 的方法是控制器上呼叫的預設方法。

瀏覽至 http://localhost:xxxx/HelloWorld/WelcomeWelcome 方法隨即執行,並傳回字串 "This is the Welcome action method..."。 預設 MVC 對應為 /[Controller]/[ActionName]/[Parameters]。 針對此 URL,控制器是 HelloWorld ,而且 Welcome 是方法。 我們尚未使用 [Parameters] URL 的一部分。

顯示瀏覽器的螢幕快照,其中含有文字這是視窗中的歡迎動作方法。

讓我們稍微修改範例,以便我們可以將一些參數資訊從 URL 傳遞至控制器 (,例如 /HelloWorld/Welcome?name=Scott&numtimes=4) 。 變更方法 Welcome 以包含兩個參數,如下所示。 請注意,我們已使用 VB 選擇性參數功能,指出如果未針對該參數傳遞任何值,參數 numTimes 應該預設為1。

Public Function Welcome(ByVal name As String, Optional ByVal numTimes As Integer = 1) As String
    Dim message As String = "Hello " & name & ", NumTimes is: " & numTimes
    Return "" & Server.HtmlEncode(message) & ""
End Function

執行您的應用程式並流覽至 http://localhost:xxxx/HelloWorld/Welcome?name=Scott&numtimes=4 您可以針對 namenumtimes嘗試不同的值。 系統會自動將網址列中查詢字串中的具名參數對應至方法中的參數。

顯示瀏覽器的螢幕快照,其中顯示視窗中文字 Hello Scott Num Times 為 4。

在這兩個範例中,控制器都是執行MVC的 VC部分,也就是檢視和控制器工作。 控制器會直接傳回 HTML。 通常我們不希望控制器直接傳回 HTML,因為這對程式代碼而言非常麻煩。 相反地,我們通常會使用個別的檢視範本檔案來協助產生 HTML 回應。 讓我們看看如何執行這項操作。