Socket
Book a DemoInstallSign in
Socket

gulp-aspnet-viewnames

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gulp-aspnet-viewnames

Generates a c# file containing strong typed information about mvc views

latest
Source
npmnpm
Version
0.3.1
Version published
Maintainers
1
Created
Source

gulp-aspnet-viewnames

Travis npm npm License

Generates a c# file containing strong typed information about mvc views.

It also watches changes in the Views directory so that the file is always regenerated when necessery.

Install

npm install gulp-aspnet-viewnames --dev

Here is the npm package.

TL;DR version

Instead of this:

return View("~/Views/Home/Index.cshtml");

You'll be able to write this:

return View(Views.Home.Index.FullName);

Usage

This should be integrated into the gulp build process:

var viewnames = require("gulp-aspnet-viewnames");
gulp.task("viewnames", function () {
	return viewnames({
		ns: "TheNameSpaceOfTheGeneratedFile"
	});
});

Typically, you'll want to bind this to the Project Open binding so that the generated file is always up to date while you're working.

What happens

Run the viewnames task from within Task Runner Explorer. You should run it once (if you don't want to use the bindings), after that, it will continue watching over the Views and regenerate the file without your intervention.

Suppose we have the following directory under Views:

- Home
	- Index.cshtml
- Shared
	- _Layout.cshtml
	- Error.cshtml
- _ViewStart.cshtml

The following c# file will be generated (default name is ViewNames.cs):

namespace TheNameSpaceOfTheGeneratedFile
{
	// ViewName class skipped for brevity.
	// ViewName will contain a Name and a FullName property.

    public static class Views
    {
        public static readonly ViewName _ViewStart = new ViewName("_ViewStart", "~/Views/_ViewStart.cshtml");
        public static class Home
        {
            public static readonly ViewName Index = new ViewName("Index", "~/Views/Home/Index.cshtml");
        }
        public static class Shared
        {
            public static readonly ViewName Error = new ViewName("Error", "~/Views/Shared/Error.cshtml");
            public static readonly ViewName _Layout = new ViewName("_Layout", "~/Views/Shared/_Layout.cshtml");
        }
    }
}

So now, you can reference your views with strong typed values rather than hard coded ones, which are prone to refactoring issues.

The generated file should be ignored by your source control.

Keywords

aspnet

FAQs

Package last updated on 21 Nov 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts