Shared MVC Razor functions in several views

后端 未结 3 1573
眼角桃花
眼角桃花 2021-02-02 07:23

I have functions in my view that is shared by several pages:

@functions 
{
    public HtmlString ModeImage(ModeEnum mode) 
    {
        switch(mode)
        {
          


        
相关标签:
3条回答
  • 2021-02-02 07:53

    You could make a static helper page and put a normal static method in the page.
    You could then call it by writing PageName.MyMethod() anywhere, and I believe that you won't need to recompile the project.

    0 讨论(0)
  • 2021-02-02 08:09

    (Here's a more detailed version of the existing answers.)

    Create a folder called App_Code in the root of the MVC project if it doesn't already exist. In here, create an empty razor view and name it whatever you want:

    MVC project with Razor view called Shared.cshtml inside App_Code folder

    Add @helpers and/or static methods to it as needed:

    @helper ShowSomething()
    {
        <span>Something</span>
    }
    
    @functions
    {
        public static int CalculateSomething()
        {
            return 1;
        }
    }
    

    Then use them from your views by first accessing the shared view by name:

    @Shared.ShowSomething()
    @Shared.CalculateSomething()
    
    0 讨论(0)
  • 2021-02-02 08:16

    This sounds like you want the Razor @helper methods described in the blog post ASP.NET MVC3 and the @helper syntax within Razor by Scott Guthrie.

    Here is the overview... "The @helper syntax within Razor enables you to easily create re-usable helper methods that can encapsulate output functionality within your view templates. They enable better code reuse, and can also facilitate more readable code."

    0 讨论(0)
提交回复
热议问题