Zoeken…
Invoering
T4MVC is een T4-sjabloon dat sterk getypeerde helpers genereert voor gebruik in MVC Routing-mechanismen, in tegenstelling tot magische tekenreeksen. T4MVC zal de verschillende controllers, acties en weergaven detecteren en verwijzingen naar die weergaven maken, tijdens het compileren fouten maken in het geval dat een poging om een weergave te routeren of te openen ongeldig is.
Een actie aanroepen
In MVC zijn er enkele scenario's waarin u een actie voor routeringsdoeleinden wilt opgeven, hetzij voor een link, formulieractie of een omleiding naar actie. U kunt een actie opgeven via de MVC-naamruimte.
Wanneer een controller wordt gegeven, zoals HomeController
:
public class HomeController : Controller
{
public ActionResult Index()
{
...
}
public ActionResult MyAction()
{
...
}
public ActionResult MyActionWithParameter(int parameter)
{
...
}
}
T4MVC genereert een overgenomen controller die de actie overschrijft. Met deze opheffing worden de routegegevens correct ingesteld, zodat MVC's UrlHelper
de juiste URL genereert. U kunt deze methode aanroepen en doorgeven aan de verschillende methoden voor UrlHelper
. In de onderstaande voorbeelden wordt ervan uitgegaan dat de standaard MVC-route wordt gebruikt:
Koppeling
Om een genereren van a
tag met de opgegeven tekst:
@Html.ActionLink("Link Text", MVC.Home.Index() )
//result: <a href="/">Link Text</a>
@Html.ActionLink("Link Text", MVC.Home.MyAction() )
//result: <a href="/Home/MyAction">Link Text</a>
//T4MVC also allows you to specify the parameter without creating an anonymous object:
@Html.ActionLink("Link Text", MVC.Home.MyActionWithParameter(1) )
//result: <a href="/Home/MyActionWithParameter/1">Link Text</a>
Om een url te genereren:
@Url.Action( MVC.Home.Index() )
//result: /
@Url.Action("Link Text", MVC.Home.MyAction() )
//result: /Home/MyAction
@Url.Action("Link Text", MVC.Home.MyActionWithParameter(1) )
//result: /Home/MyActionWithParameter/1
Merk op dat T4MVC dezelfde regels volgt als MVC Routing - het zal geen standaard routevariabelen specificeren, zodat de Index
op de HomeController
geen /Home/Index
genereert, maar in plaats daarvan de perfect geldige en afgekorte vorm van /
.
Vormmethode
Om een form
tag te genereren met de juiste action
opgegeven:
@Html.BeginForm( MVC.Home.Index(), FormMethod.Get /* or FormMethod.Post */ )
{
//my form
}
//result:
<form action="/" method="GET">
//my form
</form>
@Html.BeginForm( MVC.Home.MyActionWithParameter(1), FormMethod.Get /* or FormMethod.Post */ )
{
//my form
}
//result:
<form action="/Home/MyActionWithParameter/1" method="GET">
//my form
</form>
Omleiden naar actie
In een controller wilt u misschien omleiden naar een actie van de huidige actie. Dit kan gedaan worden, zoals:
public class RedirectingController : Controller
{
public ActionResult MyRedirectAction()
{
...
return RedirectToAction( MVC.Redirecting.ActionToRedirectTo() );
//redirects the user to the action below.
}
public ActionResult ActionToRedirectTo()
{
...
}
}