M6T.Core.TupleModelBinder
1.2.1
See the version list below for details.
dotnet add package M6T.Core.TupleModelBinder --version 1.2.1
NuGet\Install-Package M6T.Core.TupleModelBinder -Version 1.2.1
<PackageReference Include="M6T.Core.TupleModelBinder" Version="1.2.1" />
paket add M6T.Core.TupleModelBinder --version 1.2.1
#r "nuget: M6T.Core.TupleModelBinder, 1.2.1"
// Install M6T.Core.TupleModelBinder as a Cake Addin
#addin nuget:?package=M6T.Core.TupleModelBinder&version=1.2.1
// Install M6T.Core.TupleModelBinder as a Cake Tool
#tool nuget:?package=M6T.Core.TupleModelBinder&version=1.2.1
M6T.Core.TupleModelBinder
This package only works with named tuples and JSON post body!!!. What this package does is simply provide bindings for your controllers that maps incoming json data to tuple object at runtime. so you dont have to create a class for all of your actions in mvc.
If you want to contribute just do it no rules. In fact some other incoming data formats and checking the request content type to bind them is very very wellcome 😃
Installation
//Nuget
Install-Package M6T.Core.TupleModelBinder
//dotnet cli
dotnet add package M6T.Core.TupleModelBinder
Usage
Modify startup.cs like
using M6T.Core.TupleModelBinder;
....
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc(options =>
{
options.ModelBinderProviders.Insert(0, new TupleModelBinderProvider());
});
}
Post request body
{
"user" : {
"Name":"Test",
"Surname":"Test2",
"Email":"example@example.com"
},
"someData" : "If you like it, you put a data on it"
}
And in your controller use it like
[HttpPost]
public IActionResult CreateUser((User user, string someData) request)
{
using (var db = new DBContext())
{
var newUser = db.Users.Add(request.user);
db.SaveChanges();
return Json(new { userId = request.user.Id, someData = request.someData});
}
}
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 | netcoreapp3.1 is compatible. |
-
.NETCoreApp 3.1
- Newtonsoft.Json (>= 12.0.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.