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()
    {
        ...
    }
}


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow