lynMarkdigRenderTest77 1.0.0
dotnet add package lynMarkdigRenderTest77 --version 1.0.0
NuGet\Install-Package lynMarkdigRenderTest77 -Version 1.0.0
<PackageReference Include="lynMarkdigRenderTest77" Version="1.0.0" />
paket add lynMarkdigRenderTest77 --version 1.0.0
#r "nuget: lynMarkdigRenderTest77, 1.0.0"
// Install lynMarkdigRenderTest77 as a Cake Addin #addin nuget:?package=lynMarkdigRenderTest77&version=1.0.0 // Install lynMarkdigRenderTest77 as a Cake Tool #tool nuget:?package=lynMarkdigRenderTest77&version=1.0.0
NamespaceViewLocationExpander
This package enables structuring your MVC projects in a feature-based way, where the model, view and controller are all located together instead of in separate Models/
, Views/
and Controllers/
folders. In other words, instead of grouping files by type they are grouped by feature.
📂 Project
📓 Program.cs
📓 Startup.cs
📂 Pages
📄 _ViewImports.cshtml
📄 _ViewStart.cshtml
📂 Home
📄 About.cshtml
📄 Contact.cshtml
📄 Error.cshtml
📓 ErrorViewModel.cs
📓 HomeController.cs
📄 Index.cshtml
📄 Privacy.cshtml
📂 Shared
📄 _CookieConsentPartial.cshtml
📄 _Layout.cshtml
📄_ValidationScriptsPartial.cshtl
How to use
To configure this layout you need to call UseNamespaceViewLocations
in ConfigureServices
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
// Call UseNamespaceViewLocations()
services
.UseNamespaceViewLocations()
.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
}
How it works
The default view resolver uses the name of the controller (minus the Controller suffix) and the name of the action. This project uses the namespace of the controller instead. This way, as long as the namespace matches the folder structure, you can put the view in the same folder as the controller and things will just work.
How it works in detail
The way razor views are found in ASP.Net MVC Core is by using ViewLocationFormats, which by default is the following list:
new string[]
{
"~/Views/{1}/{0}.cshtml",
"~/Views/{1}/{0}.vbhtml",
"~/Views/Shared/{0}.cshtml",
"~/Views/Shared/{0}.vbhtml"
};
Each entry is a formatable string where {0}
is the name of the action and {1}
is the name of the controller. The NamespaceViewLocationExpander
adds support for {namespace}
which will be replace with the namespace of the controller, and the UseNamespaceViewLocations()
extension method insterts the formatable string /{namespace}/{0}.cshtml
in the list.
UseNamespaceViewLocations
will by default use the assembly name as a prefix to remove from the namespace, since the namespace will most likely contain the project name too. You can call UseNamespaceViewLocations("MyDemoProject")
with a custom prefix to remove instead, if the assembly name does not match the default namespace of the project.
License
The MIT license
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
- No dependencies.
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 |
---|---|---|
1.0.0 | 0 | 11/24/2020 |