Sgw.KebabCaseRouteTokens
1.1.0
dotnet add package Sgw.KebabCaseRouteTokens --version 1.1.0
NuGet\Install-Package Sgw.KebabCaseRouteTokens -Version 1.1.0
<PackageReference Include="Sgw.KebabCaseRouteTokens" Version="1.1.0" />
paket add Sgw.KebabCaseRouteTokens --version 1.1.0
#r "nuget: Sgw.KebabCaseRouteTokens, 1.1.0"
// Install Sgw.KebabCaseRouteTokens as a Cake Addin
#addin nuget:?package=Sgw.KebabCaseRouteTokens&version=1.1.0
// Install Sgw.KebabCaseRouteTokens as a Cake Tool
#tool nuget:?package=Sgw.KebabCaseRouteTokens&version=1.1.0
kebab-case-route-tokens
ASP.NET Core model conventions to turn route tokens into kebab case urls
dotnet add package Sgw.KebabCaseRouteTokens
https://www.nuget.org/packages/Sgw.KebabCaseRouteTokens/
Purpose
When you normally use the Microsoft.AspNetCore.Mvc.RouteAttribute
type to annotate your Controllers and Actions you can use tokens in your route paths.
Example:
[Route("api/[controller]")]
public class UserRegistrationController
{
[HttpPost]
[Route("[action]")]
public ActionResult CreateNewUserRegistration(UserRegistration registration)
{
// ...
}
[HttpGet]
[ActionName("TestIt")]
[Route("[action]")]
public ActionResult GetUserData()
{
// ...
}
}
These tokens will automatically be replaced by Mvc with the name of the controller (in the case of "[controller]"
without the "Controller"
suffix).
The resulting url for the first action above would be POST /api/UserRegistration/CreateNewUserRegistration
If you prefer kebab-case over PascalCase for your urls and you want to use the [controller]
/[action]
token replacement in the RouteAttribute
s you can use the convention classes in this project.
Usage
In your Startup.cs
add the Convention classes to your MvcOptions.Conventions
collection.
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc(options =>
{
options
.Conventions
.Add(new KebabCaseRouteTokenReplacementControllerModelConvention());
var methodNamePrefixes = new string[]
{
"Create", "Delete", "Update", "Get", "Find"
};
options
.Conventions
.Add(new KebabCaseRouteTokenReplacementActionModelConvention(methodNamePrefixes));
});
}
}
Any method prefixes supplied to the KebabCaseRouteTokenReplacementActionModelConvention
will be removed from the action method name before performing kebab-case conversion.
With the above example controller and action method the resulting generated url would be POST /api/user-registration/new-user-registration
.
Since the second action method GetData
has a custom action name set by [ActionName("TestIt")]
, no kebab-casing is performed on the action method url. The resulting url would be GET /api/user-registration/TestIt
If the ActionNameAttribute
was not applied the resulting url would be GET /api/user-registration/user-data
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.AspNetCore.Mvc.Core (>= 2.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|