What is the syntax for a strongly-typed ActionLink

2020-02-10 04:33发布

问题:

I am using a new MVC 4 Internet application template with Visual Studio 2012. I have installed the Nuget package for MVC 4 Futures. In my _Layout.cshtml I am building the navigation menu.

This works and builds the correct URL:

@Html.ActionLink("Customers", "Index", "Customers")

This is what I would like to work, a strongly-typed variation:

@Html.ActionLink<CustomersController>(c => c.Index(), "Customers", null)

It griefs on "Cannot choose method from method group. Did you mean to invoke a method?", but something tells me that's not the real issue.

This compiles and outputs the right HTML, but not inline:

@{
   var t = Html.ActionLink<CustomersController>(c => c.Index(), "Customers");
   Response.Write(t);
}

How do you build strongly-typed Action/ActionLink's in MVC 4 using Razor's syntax (with or without Futures)?

回答1:

@(Html.ActionLink<CustomersController>(x => x.Index(), "Customers"))

The Basics – (Strongly-Typed) Linking to MVC Actions

This question covers it loosely.