Přidání kontroleru (C#)
Poznámka
Aktualizovaná verze tohoto kurzu je k dispozici tady, která používá ASP.NET MVC 5 a Visual Studio 2013. Je bezpečnější, mnohem jednodušší sledovat a ukazuje více funkcí.
V tomto kurzu se naučíte základy sestavení webové aplikace ASP.NET MVC pomocí sady Microsoft Visual Web Developer 2010 Express Service Pack 1, což je bezplatná verze sady Microsoft Visual Studio. Než začnete, ujistěte se, že jste nainstalovali níže uvedené požadavky. Všechny z nich můžete nainstalovat kliknutím na následující odkaz: Instalační program webové platformy. Případně můžete požadavky nainstalovat jednotlivě pomocí následujících odkazů:
- Požadavky na Visual Studio Web Developer Express SP1
- aktualizace nástrojů ASP.NET MVC 3
- SQL Server Compact 4.0 (runtime + podpora nástrojů)
Pokud používáte Visual Studio 2010 místo Sady Visual Web Developer 2010, nainstalujte požadované součásti kliknutím na následující odkaz: Požadavky sady Visual Studio 2010.
K tomuto tématu je k dispozici projekt Visual Web Developer se zdrojovým kódem jazyka C#. Stáhněte si verzi jazyka C#. Pokud dáváte přednost jazyku Visual Basic, přepněte na verzi Visual Basic tohoto kurzu.
MVC je zkratka pro model-view-controller. MVC je vzor pro vývoj aplikací, které jsou dobře navrženy a snadno se spravují. Aplikace založené na MVC obsahují:
- Kontrolery: Třídy, které zpracovávají příchozí požadavky na aplikaci, načítají data modelu a pak určují šablony zobrazení, které vrací odpověď klientovi.
- Modely: Třídy, které představují data aplikace a které používají logiku ověřování k vynucení obchodních pravidel pro tato data.
- Zobrazení: Soubory šablon, které vaše aplikace používá k dynamickému generování odpovědí HTML.
Všechny tyto koncepty probereme v této sérii kurzů a ukážeme vám, jak je použít k vytvoření aplikace.
Začněme vytvořením třídy kontroleru. V Průzkumník řešení klikněte pravým tlačítkem na složku Controllers (Řadiče) a pak vyberte Add Controller (Přidat kontroler).
Pojmenujte nový kontroler HelloWorldController. Ponechte výchozí šablonu jako Prázdný kontroler a klikněte na Přidat.
Všimněte si v Průzkumník řešení, že byl vytvořen nový soubor s názvem HelloWorldController.cs. Soubor je otevřen v integrovaném vývojovém prostředí (IDE).
public class HelloWorldController
Uvnitř bloku vytvořte dvě metody, které vypadají jako následující kód. Kontroler vrátí řetězec HTML jako příklad.
using System.Web;
using System.Web.Mvc;
namespace MvcMovie.Controllers
{
public class HelloWorldController : Controller
{
//
// GET: /HelloWorld/
public string Index()
{
return "This is my <b>default</b> action...";
}
//
// GET: /HelloWorld/Welcome/
public string Welcome()
{
return "This is the Welcome action method...";
}
}
}
Váš kontroler má název HelloWorldController
a první výše uvedená metoda má název Index
. Pojďme ho vyvolat z prohlížeče. Spusťte aplikaci (stiskněte klávesu F5 nebo Ctrl+F5). V prohlížeči připojte k cestě na panelu Adresa "HelloWorld". (Například na následujícím obrázku je http://localhost:43246/HelloWorld.
) Stránka v prohlížeči bude vypadat jako na následujícím snímku obrazovky. Ve výše uvedené metodě kód vrátil řetězec přímo. Řekli jste systému, aby vrátil nějaký KÓD HTML, a to se udělalo!
ASP.NET MVC vyvolá různé třídy kontroleru (a různé metody akcí v nich) v závislosti na příchozí adrese URL. Výchozí logika mapování používaná ASP.NET MVC používá k určení kódu, který se má vyvolat, podobný formát:
/[Controller]/[ActionName]/[Parameters]
První část adresy URL určuje třídu kontroleru, která se má provést. Takže /HelloWorld se mapuje na HelloWorldController
třídu. Druhá část adresy URL určuje metodu akce ve třídě, která se má provést. Takže /HelloWorld/Index způsobí Index
HelloWorldController
, že metoda třídy se spustí. Všimněte si, že jsme museli přejít pouze na /HelloWorld a Index
metoda byla použita ve výchozím nastavení. Je to proto, že metoda s názvem Index
je výchozí metoda, která bude volána na kontroleru, pokud není explicitně zadána.
Přejděte na adresu http://localhost:xxxx/HelloWorld/Welcome
. Metoda Welcome
se spustí a vrátí řetězec "Toto je metoda akce Vítejte...". Výchozí mapování MVC je /[Controller]/[ActionName]/[Parameters]
. Pro tuto adresu URL je HelloWorld
Welcome
kontroler a je metodou akce. Zatím jste nepoužili [Parameters]
část adresy URL.
Pojďme příklad mírně upravit, abyste mohli předat některé informace o parametrech z adresy URL kontroleru (například /HelloWorld/Welcome?name=Scott&numtimes=4). Změňte Welcome
metodu tak, aby zahrnovala dva parametry, jak je znázorněno níže. Všimněte si, že kód používá funkci optional-parameter jazyka C# k označení, že numTimes
parametr by měl být ve výchozím nastavení 1, pokud se pro tento parametr nepředá žádná hodnota.
public string Welcome(string name, int numTimes = 1) {
return HttpUtility.HtmlEncode("Hello " + name + ", NumTimes is: " + numTimes);
}
Spusťte aplikaci a přejděte na ukázkovou adresu URL (http://localhost:xxxx/HelloWorld/Welcome?name=Scott&numtimes=4)
. Můžete vyzkoušet různé hodnoty pro name
a numtimes
v adrese URL. Systém automaticky mapuje pojmenované parametry z řetězce dotazu na panelu Adresa na parametry ve vaší metodě.
V obou těchto příkladech kontroler prováděl část VC MVC, tj. zobrazení a kontroler. Kontroler vrací kód HTML přímo. Obvykle nechcete, aby kontrolery vracely kód HTML přímo, protože kód je velmi těžkopádný. Místo toho obvykle použijeme samostatný soubor šablony zobrazení, který nám pomůže vygenerovat odpověď HTML. Pojďme se podívat, jak to můžeme udělat.
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro