2016-01-06 16 views
8

Wir bekommen derzeit eine neue Anwendung mit MVC6 aufgestanden. In früheren Versionen verwenden wir T4MVC so dass wir solche Sachen tun könnten:MVC6 Stark typisierte Aktion Links und Ansichten

@Url.Action(MVC.Home.Index); 

und

return View(MVC.Home.Views.Index, model); 

In der neuen Anwendung, die ich magische Saiten verwenden. Ich hasse magische Saiten. Gibt es dafür Alternativen für MVC6?

+0

Meinst du 'T4MVC' im Gegensatz zu' TVMVC'? – Nkosi

+0

Ja. Tippfehler. Ich habe es korrigiert. –

Antwort

3

Kam über dieses AspNet.Mvc.TypedRouting Repository auf GitHub, das ich dachte, würde nützlich sein, wenn ich schließlich zu MVC6 übergehe.

Nicht sicher, ob es Ansichten Griffe auch wenn

einige Anweisungen aus der Readme

Ausdruck basiert Link-Generierung nutzen zu können, benötigen Sie die folgenden in Ihre Startup-Klasse zu tun:

public void Configure(IApplicationBuilder app) 
{ 
    // other configuration code 

    app.UseMvc(routes => 
    { 
     routes.UseTypedRouting(); 
    }); 
} 

Grundsätzlich können Sie Folgendes tun:

// generating link without parameters - /Home/Index 
urlHelper.Action<HomeController>(c => c.Index()); 

// generating link with parameters - /Home/Index/1 
urlHelper.Action<HomeController>(c => c.Index(1)); 

// generating link with additional route values - /Home/Index/1?key=value 
urlHelper.Action<HomeController>(c => c.Index(1), new { key = "value" }); 

// generating link where action needs parameters to be compiled, but you do not want to pass them - /Home/Index 
// * With.No<TParameter>() is just expressive sugar, you can pass 'null' for reference types but it looks ugly 
urlHelper.Action<HomeController>(c => c.Index(With.No<int>())); 
+0

Das sieht nach der Rechnung aus! Ich werde anfangen damit zu spielen! –

+0

Leider können die Ansichten nicht zur Kompilierzeit gefunden werden. Um typisierte Ansichten zu erstellen, wird eine Visual Studio-Erweiterung benötigt. –

Verwandte Themen