Dissecting Razor, part 8: Static Helpers

Razor helpers can be extremely useful, but they are designed to be used only by the page that created them.

To create reusable helpers, you can create CSHTML pages in the App_Code directory.  The WebRazorHostFactory will check for pages in App_Code and create a WebCodeRazorHost instead of the normal WebPageRazorHost.

This happens before the virtual CreateHost method; in order to change this behavior, one must create an inherited RazorBuildProvider and override the CreateHost method; for more details, see the source for more details.

The WebCodeRazorHost compiles helper methods as public static methods by setting the RazorEngineHost.StaticHelpers property to true.  It also overrides PostProcessGeneratedCode to remove the Execute() method and make the Application property static. 

Static helper pages inherit the HelperPage class, a very stripped-down base class which contains the static WriteTo methods used by the helpers and some static members that expose the Model, Html, and other members from the currently executing page (using the WebPageContext.Current.Page property).

Because the generated Execute() method is removed, all content outside helpers and @functions  blocks is not seen by the compiler.  It is seen by the Razor parser, so it must contain valid Razor syntax (eg, no stray @ characters).

Here is an example:

@helper Menu(params string[][] items) {
    <ul>
        @foreach (var pair in items) {
            <li><a href="@Href(pair[1])">@pair[0]</a></li>
        }
    </ul>
}

This text and @code is not compiled.

This helper can then be called from any other code by writing PageName.Menu(...), where PageName is the filename of the CHSTML page in App_Code.  In Razor pages, it can be called like any other helper.  In normal C# code, it returns a HelperResult instance; call ToString() or WriteTo(TextWriter) to get the HTML source.

For example:  (assuming that the helper is defined in ~/App_Code/Helpers.cshtml)

@Helpers.Menu(
    new[] { "Home",    "~/"        },
    new[] { "About",   "~/About"   },
    new[] { "Contact", "~/Contact" }
)

In order to see the source, I need to insert a #error directive inside the helper block; putting it in the page itself will have no effect, since the page is not compiled.  Since the contents of the helper block are code, not markup, I don’t need to wrap it in @{ ... }.

The above helper is transformed into the following C#: (As usual, @line directives have been removed)

public class Helpers : System.Web.WebPages.HelperPage {
    public static System.Web.WebPages.HelperResult Menu(params string[][] items) {
        return new System.Web.WebPages.HelperResult(__razor_helper_writer => {

            WriteLiteralTo(@__razor_helper_writer, "    <ul>\r\n");
            foreach (var pair in items) {
                WriteLiteralTo(@__razor_helper_writer, "            <li><a href=\"");
                WriteTo(@__razor_helper_writer, Href(pair[1]));
                WriteLiteralTo(@__razor_helper_writer, "\">");
                WriteTo(@__razor_helper_writer, pair[0]);
                WriteLiteralTo(@__razor_helper_writer, "</a></li>\r\n");
            }
            WriteLiteralTo(@__razor_helper_writer, "    </ul>\r\n");
#error
        });
    }
    public Helpers() {
    }
    protected static System.Web.HttpApplication ApplicationInstance {
        get {
            return ((System.Web.HttpApplication)(Context.ApplicationInstance));
        }
    }
}

Note that the page-level content does not show up anywhere.  The helper itself is compiled exactly like a normal helper, except that it’s static.

Although there aren’t any in this example, @functions blocks will also be emitted normally into the generated source.

Next Time: Inline Helpers

56 comments:

Thanks a lot for this tutorial


london

Great, you`ve gelped me alot in programming.

Slice within the sclera near the center of the cow's eye practicing a razor-sharp scalpel. This will leave half of the eye showing the anterior features, such as the cornea, lens, iris, and ciliary body. The other half of the cow's eye will advertise the attachment of the optic resolution to the eye.Remove and throw endlessly the vitreous humor, or the eye gel. www.makemyessay.com

About 98% of students from every corner of the world found a solution for Assignment help
and got fascinated through us. The plagiarism free writings work provided by us is highly professional, satisfying almost all the reputed colleges all over the world. Allassignmenthelp.com assist you in your assignments on any subject at any level.

It's incredibly an unfathomable and pleasing piece of data. I am fulfilled that you simply allowed this solid information to us. If it's not too much bother stay us jump forward thusly. Appreciative to you for sharing assignment help

Assignment Writing Help gives me a solution to how to score good marks and attain the attention of professor. In a competitive world, only hard work is not enough to score high but how you present your content is very important. And this I learn from Assignment Writing help. A powerful tool to score high marks in Assignment.
Online Assignment Help Services
Assignment Help Experts
Assignment Assistance
Assignment Helper
Assignment Help Online Services
Online Assignment Help
Assignment Help Online
Assignment Help

Thanks for post, Do you want a technically and quick Chemistry Assignment Help by the best experts. We help you to write chemistry assignments efficiently and help you to increase your grade in your college
Chemistry Assignment Help
Chemistry Homework Help

Personal statement writing is kind of an application where you need to write about yourself. This is kind of bio data that you present in your university for higher studies or for any job. Thus, it is an important part and you also need to follow certain rules and regulations while writing the same. Here are some of the basic rules of writing a personal statement.
My Assignment Help

I recommend you to read advices from https://justdomyhomework.com/blog/uchicago-essay-prompts if you want to apply to University of Chicago. Here you can get some essay prompts to use

Gadgets or peripheral devices like HP printer have reduced our pains to a great level by making copies or printing our important documents. Now, within few seconds, you can obtain as many prints or copies as you wish for. There are several options available in the market claiming to be the best printer in the whole world. But in reality, one that offers best alternatives in all sectors is HP industry. HP Printers are one of the well-known printers and globally accepted. But as we all know no electronic device is 100 % perfect. With passing time, you can face some error with your HP printer too. So, whenever you encounter any error, then immediately dial HP printer customer support phone number and receive step-wise resolutions from the ingenious professionals.

Thanks, great post. I really like your point of view. I am working as a support executive for Microsoft Office products. I am offering support for Microsoft Office and if you need help then contact Microsoft 365 Support +1-888-502-0222 and you can also chat us to get assistance to fix issues regarding Microsoft Office.
Office 365 Help
Office 365 Support
Microsoft Office 365 Support
Outlook Support
Outlook Support Number
Outlook Tech Support
Outlook Support Phone Number

If you want to know more about the need of organizational management and resolve your queries related to the topic you can take help from Programming Assignment Help.

Students Assignment Help is the best assignment help brand which provides make my assignment to the students from all around the world. The writers serve plagiarism free and original content. So, students can achieve highest grades.

Livewebtutors aims at providing the students with a one stop solution for all the academic related issues. The company has Livewebtutors is an online Assignment Help and assignment writing service offering expert assignment help. Hire Australian assignment writing experts.
visit now:- nursing assignment help

first of all, a definition: A helper magnificence is a class full of static strategies. it also includes used to isolate a "useful" algorithm. Inexpensive Assignment Help offers a fixed of a static helper class that can be used whilst ... A static magnificence used to specific assumptions, including preconditions.

Typically, however, I agree with static and helper & Essay Writing Help Online training are an anti-pattern and result in much less maintainable code.

We Offer best online assignment help likes as manage assignments services in schools and colleges in usa, australia and uk. Allassignment help is number 1 assignment help services in USA.
online assignment help

During the long hours work operation from year to year, it may be obvious to get technical issues with HP laptop. Get in touch with HP laptop support professional to get the solution of issues. We are in this for a long time and offering the support of many tired HP Laptop customers. Our team gives the sure guarantee that you are not bound to accept maximum failure in it. Our mission and vision is to give the clarified answer of each query in defined due date.

This post is a pool of information. The readers are quite impressed after reading this impressive post.
This impressive post certainly encourages to choose Assignment Help Services.
You can email us at cs@Myassignmenthelpau.Com or Phone Number: +61-2-8005-8227

Very nice!!! This is really good blog information thanks for sharing. We are a reliable third party QuickBooks support phone number company, offering technical support for various types of technical errors.

Quickbooks online backup

QuickBooks online customer service

Online assignment help allows students to overcome the various assignment writing challenges that they face in academics. This service is not only reliable but is also affordable for every student. One of the most popular academic service by Online Assignment Expert, is Nursing Assignment Help. The subject experts have a vast knowledge in the field of Nursing and have solved hundreds of assessments till date. Moreover, the myob assignment help by our experts has proven to meet all the expectations of students. We excel in providing assignments written exactly as per the guidelines provided by a student's university.

Assignment help is given the full profession lift to the students in which we control the students to make the correct stride throughout everyday life and show signs of improvement opportunity throughout everyday life.
Assignment Help Canada

Hi! I am Martinlutharz, available 24x7 to help out the needy ones who are suffering from issues related to their Apple devices. Whenever, you face any type of technical or non-technical issue associated with your Apple device, you can give a ring to our Apple Support Phone Number at anytime and also from anywhere. Here, I and one of my colleagues will provide you get cent percent resolution for your entire issues within a quick succession of time.

If you face any problem related to antivirus issue contact
Avast Tech Support Phone Number, they provide the best service to their customer and give quick response.

If you are running out of time, and it is taking a lifetime for you to complete your cedar college assignments, you must visit us. You can easily finish your tasks if you avail our CEDAR assignment help online.


I found your article truly amazing and interesting, it is quite useful for me obvious. Thanks for sharing your great post.
Brother Printer Support | Brother Printer Support Numbert

HP printer is one of the most used devices in all offices and homes for printing purpose. It becomes very hectic if you face any technical issue with your printer and unable to fix the error. In this case, you should contact HP Printer Help Number to get immediate help from experts.

Norton.com/Setup is best antivirus available in the market. If you want to protect your system online or locally from any unforeseen events Norton is is a must have software in your PC or Mac. Activate your Norton.com/Setup to protect yourself ad your data from your system from malware and antivirus. Browse internet without any hesitation norton will take care of all malicious antiviruses floating all over internet.

For any concern and help just visit website for Office.com/Setup help and key activation of setup You can do it by yourself if you know how to install office.com/Setup on your PC or Mac or you can call third party companies as well who can do it on your behalf.

McAfee.com/Activate Since the world is developing each day with new computerized advances, digital dangers, malware, information, and harming diseases have additionally turned out to be increasingly more progressed with every day. These digital contaminations harm a gadget or documents in different ways.McAfee.com/Activate

Thanks! For sharing your views regarding this topic. I really enjoyed your post. If you need information related to outlook email then please visit Microsoft outlook support.

Hii i am donaldgeorge and i am a senior technician in Quickbooks .If you face any technical issues in quickbooks then must dial Quickbooks Support Phone Number to get an instant solutions.

Our website AllAssignmenthelp.com is affiliated with the site of various nations. We give our administration everywhere around the world. Our assignment assistance is given to students all through. Click Homework Help Canada

Students who are demanding for homework for them we are continue giving best team and they can easily complete your work. So, you can collect top homework service easily. With the amazing price students can easily get their marketing dissertation topics searvice and students can easily get more best services from the professional experts of StudentsAssignmentHelp.com.

norton.com/setup - Norton security program can secure either one device or up to ten devices and keep the whole network safe from malware such as worms, spyware, rootkits, etc. For getting Norton Setup, visit norton.com/setup , norton.com/setup .
MS Office is used by a lot of people on a variety of devices like Android, Mac, PC, laptops, and iOS. This Office setup is specially programmed and adapted to do an array of tasks. Microsoft Office provides a list of helpful and dynamic features to accomplish the majority of tasks. To get this amazing setup for any devices, visit office.com/setup.
mcafee.com/activate - McAfee antivirus offers end to end protection from malware, fastest security against viruses on the computer files and folders, useful and accurate anti-spam security, and secures your browsing data on the internet. Visit the website mcafee.com/activate to download, install and activate McAfee setup on your device.

Simply dial 1-877-916-7666, the tech support number of Assistance for All. We are the most well-known technical support office working around the nation.

My Assignment Services is no. 1 when it comes up to providing assignment help(uk). We have a team of expert writers who are qualified in every level of econometrics, from basic to advanced econometrics. Some of these tutors are still working in this field, so they are well aware of the latest trends and are able to describe them well. Each assignment that we deliver, undergoes proper editing & proofreading and plagiarism check, so that there are no errors. My Assignment Services will always be there standing tall 24x7. We provide help for a wide range of assignments and styles like, dissertation, report writing, essays, case study, etc. My Assignment Services is ready for Australian students rely on our humanities assignment help services due to our amazing features like, plagiarism free content, after sales service, error free papers, etc. You don’t have to involve much, as we want you to relax and let our experts do the work for you. My Assignment Services has been serving students from past 11 years now and we have gained good name among students due to our excellent quality of work. My Assignment Services not only help with healthcare, but also other subjects like higher business management, economics, finance, computer science, biology, etc. If you also have any unfinished management assignments, then we are here to provide you the best management assignment help. Our quality is unbeatable and we provide plagiarism free content. No need to worry now, as you can avail our geography assignment help services with amazing discounts and cashbacks. There is no need to panic, as we are here to help. So, order now.

This post is not just informative but impressive also. The post is so convincing that it created an urge to choose Nursing Assignment Help services. You can email us at cs@Myassignmenthelpau.Com or Phone Number: +61-2-8005-8227

Livewebtutors aims at providing the students with a one stop solution for all the academic related issues. The company has Livewebtutors is an online Assignment Help and assignment writing service offering expert assignment help. Hire Australian assignment writing experts.
visit now:- myob Assignment Help

I preferred your site and I read your blog and it has numerous noteworthy focuses. It is instructive and extremely valuable. Continue sharing this sort of blog. I am interested to find out about your next blog. For more info go to:-
mcafee.com/activate | norton.com/setup | norton.com/setup | mcafee.com/activate

This blog post has contain very useful information. It has a lot of informative information. I really enjoy your blog. LANGUAGE TRANSLATION SERVICES SINGAPORE

For your homework best team is always working to offer students and they can easily complete all your task accurately and in the asked format. Students don't have to wait to get top homework writing services today and score top marks. So if you demanding for law assignment help so don't search more and get our best services from the professional experts of StudentsAssignmentHelp.com.

If you are constantly lacking credibility in class, then get connected with our My Assignment Help Online now. Our direct approach will make things easier for students by doing their assignments on time. Hence chat with us or connect with us through our website to get assignments done while you relax.

My assignment help service offered by our assignment writing service experts always catch up all the required things of the topic. Our writers keep in mind that the writing should help you get good grades in your exams.

by Australian Assignment Help | Assignment Help

Ed sheeran Age is just 28. In his small age he make his career.


For students english home work is hard task that is some time not possible for all the student to finish it accurately. So the online helpers at StudentsAssignmentHelp.com is giving its excellent english homework help services and make their academic life easy. Always our team is working for every academic discipline that you face troubles in.

Hey, Your blog is very informative. It is nice to read such high-quality content. Attractive information on your blog, thank you for taking the time and share with us. Myassignmenthelp delivers high-quality content related to programming assignment help.

1.1. Please read carefully the Terms and Conditions as launched during this Agreement before acceptive them.

1.2. By accepting this Agreement with BiP Solutions Ltd (hereinafter "BiP"), either by clicking on a box indicating Your acceptance, whether as a part of a registration method or on-line purchase, or by corporal punishment AN form that references this Agreement, You conform to be sure by the Terms and Conditions as launched during this Agreement. Delta Airlines Terms & Conditions

Finding ways to book tickets easily? call on Airlines Reservation phone number. Get your tickets engaged at an immediate, simply invoke our toll-free numbers to book tickets.

We perceive the quality which individuals might face whereas booking air tickets. It becomes loads additional problematic once you are booking tickets on-line. Now, you don’t need to create yourself work for hours so as to induce your flight tickets engaged.

No waiting within the long and tedious queues at the counters to book flight tickets. With the provision of Reservation phone number, we've got alleviated up your work. simply provides an invoke the reservation helplines to book your flight tickets in an exceedingly split second.

Get flight tickets at the most effective price: once it involves travelling, all we want is affordability. Flight tickets of late are expensive to such associate degree extent that they will burn holes in pockets of the shoppers. this will be averted by booking flight tickets by line Reservation phone number.
We have dropped at you the most effective flight price ticket fares. additionally to being pocket-friendly, the services enclosed during this worth vary are extraordinary. simply invoke the flight reservations numbers and book tickets at a reasonable worth.
Airlines Phone Number For Reservations

I can only express a word of thanks. Because with the content on this blog I can add knowledge I, thank has been sharing this information. Do not forget to visit our website to share information tokeny

Are you receiving stuck while working with your HP Printer? Feeling irritated when it shows offline error often whenever you give it a command to print? Now, you don’t need to panic anymore. The HP Printer Support team’s experts are here, to bring back your printer from offline to an online state.Here,you will not only able to get rid of HP printer is offline issue rather any issue that you encounter while using brother printer are resolved in an efficient manner.

Hey, Your blog is very informative. It is nice to read such high-quality content. Attractive information on your blog, thank you for taking the time and share with us. Myassignmenthelp delivers high-quality content related to need help with quality dissertation.

hi.. your blog is very informative and useful post, i hope keep more post for sharing. thanks a lot for sharing this post also homework help

Post a Comment