diff --git a/eng/ProjectReferences.props b/eng/ProjectReferences.props
index 51da91165abf..ef94b4dac56b 100644
--- a/eng/ProjectReferences.props
+++ b/eng/ProjectReferences.props
@@ -96,6 +96,7 @@
+
diff --git a/src/Framework/Microsoft.AspNetCore.App.props b/src/Framework/Microsoft.AspNetCore.App.props
index 8384ce8c3f0c..3ae3a637aa0d 100644
--- a/src/Framework/Microsoft.AspNetCore.App.props
+++ b/src/Framework/Microsoft.AspNetCore.App.props
@@ -46,6 +46,7 @@
+
diff --git a/src/Mvc/Mvc.sln b/src/Mvc/Mvc.sln
index 66b627bbb85d..5616cb59d623 100644
--- a/src/Mvc/Mvc.sln
+++ b/src/Mvc/Mvc.sln
@@ -270,6 +270,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Mvc.Ra
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Components", "..\Components\Components\src\Microsoft.AspNetCore.Components.csproj", "{69E18B21-E4B9-4866-ABDA-3C2D9664D24C}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Mvc.Formatters.Json", "src\Microsoft.AspNetCore.Mvc.Formatters.Json\Microsoft.AspNetCore.Mvc.Formatters.Json.csproj", "{7B35EA78-7D47-4AFA-982C-899E7C55CBF1}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -1588,6 +1590,18 @@ Global
{69E18B21-E4B9-4866-ABDA-3C2D9664D24C}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{69E18B21-E4B9-4866-ABDA-3C2D9664D24C}.Release|x86.ActiveCfg = Release|Any CPU
{69E18B21-E4B9-4866-ABDA-3C2D9664D24C}.Release|x86.Build.0 = Release|Any CPU
+ {7B35EA78-7D47-4AFA-982C-899E7C55CBF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7B35EA78-7D47-4AFA-982C-899E7C55CBF1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7B35EA78-7D47-4AFA-982C-899E7C55CBF1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {7B35EA78-7D47-4AFA-982C-899E7C55CBF1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {7B35EA78-7D47-4AFA-982C-899E7C55CBF1}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {7B35EA78-7D47-4AFA-982C-899E7C55CBF1}.Debug|x86.Build.0 = Debug|Any CPU
+ {7B35EA78-7D47-4AFA-982C-899E7C55CBF1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7B35EA78-7D47-4AFA-982C-899E7C55CBF1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7B35EA78-7D47-4AFA-982C-899E7C55CBF1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {7B35EA78-7D47-4AFA-982C-899E7C55CBF1}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {7B35EA78-7D47-4AFA-982C-899E7C55CBF1}.Release|x86.ActiveCfg = Release|Any CPU
+ {7B35EA78-7D47-4AFA-982C-899E7C55CBF1}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -1706,6 +1720,7 @@ Global
{F2D4A859-7B84-403E-9745-01032EC705C5} = {32285FA4-6B46-4D6B-A840-2B13E4C8B58E}
{23A6033D-2AA6-4629-BC1B-14694E3794FF} = {3BA657BF-28B1-42DA-B5B0-1C4601FCF7B1}
{69E18B21-E4B9-4866-ABDA-3C2D9664D24C} = {5FE3048A-E96B-44F8-A7C4-FC590D7E04B4}
+ {7B35EA78-7D47-4AFA-982C-899E7C55CBF1} = {32285FA4-6B46-4D6B-A840-2B13E4C8B58E}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {63D344F6-F86D-40E6-85B9-0AABBE338C4A}
diff --git a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Formatters.Json/Microsoft.AspNetCore.Mvc.Formatters.Json.csproj b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Formatters.Json/Microsoft.AspNetCore.Mvc.Formatters.Json.csproj
new file mode 100644
index 000000000000..2bc49661a177
--- /dev/null
+++ b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Formatters.Json/Microsoft.AspNetCore.Mvc.Formatters.Json.csproj
@@ -0,0 +1,13 @@
+
+
+
+ ASP.NET Core MVC formatters for JSON input and output.
+ netcoreapp3.0
+ true
+ aspnetcore;aspnetcoremvc;json
+
+
+
+
+
+
diff --git a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Formatters.Json/Properties/AssemblyInfo.cs b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Formatters.Json/Properties/AssemblyInfo.cs
new file mode 100644
index 000000000000..95a17d64620f
--- /dev/null
+++ b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Formatters.Json/Properties/AssemblyInfo.cs
@@ -0,0 +1,8 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using System.Runtime.CompilerServices;
+using Microsoft.AspNetCore.Mvc;
+
+[assembly: TypeForwardedTo(typeof(JsonResult))]
+
diff --git a/src/Mvc/src/Microsoft.AspNetCore.Mvc/Microsoft.AspNetCore.Mvc.csproj b/src/Mvc/src/Microsoft.AspNetCore.Mvc/Microsoft.AspNetCore.Mvc.csproj
index 525841955dac..8dd6d2b434d3 100644
--- a/src/Mvc/src/Microsoft.AspNetCore.Mvc/Microsoft.AspNetCore.Mvc.csproj
+++ b/src/Mvc/src/Microsoft.AspNetCore.Mvc/Microsoft.AspNetCore.Mvc.csproj
@@ -13,6 +13,7 @@
+