lynMarkdigRenderTest77 1.0.0

dotnet add package lynMarkdigRenderTest77 --version 1.0.0                
NuGet\Install-Package lynMarkdigRenderTest77 -Version 1.0.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="lynMarkdigRenderTest77" Version="1.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add lynMarkdigRenderTest77 --version 1.0.0                
#r "nuget: lynMarkdigRenderTest77, 1.0.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .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