Suche…


Einführung

T4MVC ist eine T4-Vorlage , die stark typisierte Helfer für die Verwendung in MVC-Routing-Mechanismen im Gegensatz zu magischen Zeichenfolgen generiert. T4MVC erkennt die verschiedenen Controller, Aktionen und Ansichten und erstellt Verweise auf diese Ansichten. Dadurch werden Fehler bei der Kompilierung verursacht, wenn ein Versuch, eine Ansicht zu routen oder auf eine Ansicht zuzugreifen, ungültig ist.

Eine Aktion aufrufen

In MVC gibt es einige Szenarien, in denen Sie eine Aktion für das Routing angeben möchten, entweder für eine Verknüpfung, eine Formularaktion oder eine Weiterleitung an eine Aktion. Sie können eine Aktion über den MVC-Namespace angeben.

Wenn ein Controller wie HomeController :

public class HomeController : Controller
{
    public ActionResult Index()
    {
        ...
    }
    public ActionResult MyAction()
    {
        ...
    }
    public ActionResult MyActionWithParameter(int parameter)
    {
        ...
    }
}

T4MVC generiert einen geerbten Controller, der die Aktion überschreibt. Durch diese Überschreibung werden die UrlHelper korrekt festgelegt, sodass der UrlHelper MVC die richtige UrlHelper generiert. Sie können diese Methode aufrufen und an die verschiedenen Methoden von UrlHelper . In den folgenden Beispielen wird davon ausgegangen, dass die Standard-MVC-Route verwendet wird:

Verknüpfung

Ein generieren a Tag mit dem angegebenen Text:

@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>

So generieren Sie eine URL:

@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

Beachten Sie, dass T4MVC die gleichen Regeln wie MVC Routing folgt - es wird nicht Standardroute Variablen angeben, so dass der Index Aktion auf dem HomeController nicht generieren /Home/Index , sondern die absolut gültige und abgekürzte Form von / .

Formularmethode

So generieren Sie ein form Tag mit der angegebenen korrekten action :

@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>

Umleiten zur Aktion

Wenn Sie sich in einem Controller befinden, möchten Sie möglicherweise von der aktuellen Aktion zu einer Aktion umleiten. Das kann gemacht werden, wie auch:

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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow