рдШреЛрд╖рдгрд╛рддреНрдордХ HTML рд╕рд╣рд╛рдпрдХ

@functions @helpers


Asp.net mvc 3 рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╣реЗрд▓реНрдкрд░реНрд╕ System.Web.Mvc рд╡рд░реНрдЧ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВред HtmlHelperред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рджреГрд╢реНрдп рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ 2-3 рд╕рд╣рд╛рдпрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╕реНрдерд┐рд░ рд╡рд░реНрдЧ рдмрдирд╛рдирд╛ рд╣рдореЗрд╢рд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдПрдЪрдЯреАрдПрдордПрд▓ рдХреЛрдб рдХреЗ рдмрдбрд╝реЗ рдмреНрд▓реЙрдХреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рд╣рд╛рдпрдХреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд╛рдлреА рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ: рдХреЛрдИ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ, рдХреЛрдИ рдЦреБрдлрд┐рдпрд╛, рдХреЛрдИ рдЕрдиреНрдп рдЕрдЪреНрдЫрд╛рдИ рдирд╣реАрдВред

рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЗрдЬрд░ рдХреЗ рджреЛ рдорд╣рд╛рди рдмреНрд▓реЙрдХ рд╣реИрдВред рд╡реЗ рдЖрдкрдХреЛ рд╕реАрдзреЗ .cshtml рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдорджрджрдЧрд╛рд░ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред

рдЫрд╡рд┐

@ рдирд┐рд░реНрдорд╛рдг рдмреНрд▓реЙрдХ

рдПрдХ рд░реЗрдЬрд░ рдкреЗрдЬ System.Web.Mvc рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рдПрдХ рд╡рд░реНрдЧ рд╣реИред WebViewPage <TModel>ред рдЖрдорддреМрд░ рдкрд░ рдХреЗрд╡рд▓ рдЗрд╕рдХрд╛ рд╢реВрдиреНрдп рдирд┐рд╖реНрдкрд╛рджрди () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ html рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ

@Functions рдмреНрд▓реЙрдХ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рддрд░реАрдХреЗ, рдЧреБрдг, рдлрд╝реАрд▓реНрдб рдЖрджрд┐ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

@functions
{
string HelloWorld()
{
return "Hello world" ;
}
string Now
{
get { return DateTime .Now.ToString( "dd MMMM" ); }
}

class SomeClass
{
...
}
}


рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛрдб рдХреЛ рд╕рд░рд▓ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдПрдирдо рд╣реИ:

enum State
{
Created,
ProcessingStage1,
ProcessingStage2,
Accepted,
Rejected
}


рдФрд░ рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪрд┐рддреНрд░реЛрдВ рдФрд░ рдлреНрд░реЗрдо рд░рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:

@functions
{
enum State
{
Created,
ProcessingStage1,
ProcessingStage2,
Accepted,
Rejected
}

string GetStateImg( State state)
{
switch (state)
{
case State .Created:
return "created.png" ;
case State .ProcessingStage1:
case State .ProcessingStage2:
return "processing.png" ;
case State .Accepted:
return "accepted.png" ;
case State .Rejected:
return "rejected.png" ;
default :
return "" ;
}
}
string GetStateBorderColor( State state)
{
switch (state)
{
case State .Accepted:
return "green" ;
case State .Rejected:
return "red" ;
default :
return "yellow" ;
}
}

public static int SomeFunc( int a, int b)
{
return a + b;
}

}


рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓рддрд╛ рд╣реИ:

< div class ="border @(GetStateBorderColor(State.Accepted))" >
< img src ="~/images/@(GetStateImg(State.Accepted))" />
...
</ div >



рдмреЗрд╢рдХ, GetStateImg рдФрд░ GetStateBorderColor рддрд░реАрдХреЛрдВ рдХреЛ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╣рд╛рдпрдХ рд╡рд░реНрдЧ рдореЗрдВ .cs рдХреЛрдб рдореЗрдВ рдХрд╣реАрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╣рд╛рдпрдХреЛрдВ рдХреЛ рдПрдХ рд╣реА рджреГрд╢реНрдп рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд░рдЦрдирд╛ рдЕрдзрд┐рдХ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реЛрдЧрд╛ред

@ рд╣реЗрд▓реНрдкрд░реНрд╕ рдмреНрд▓реЙрдХ

@Functions рдмреНрд▓реЙрдХ рдореЗрдВ рдереЛрдбрд╝реА рдЦрд╛рдореА рд╣реИ: рдпрд╣ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдмреНрд▓реЙрдХ рдореЗрдВ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдп / рдЧреБрдг рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП рдФрд░, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЖрдк рд░реЗрдЬрд░ рдХреЗ рд╕рднреА рдЦреБрд╢рд┐рдпреЛрдВ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рддреЗ рд╣реБрдП рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╢рд░реАрд░ рдореЗрдВ html рд╕рдореНрдорд┐рд▓рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП @helpers рдмреНрд▓реЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рд╣рд╛рдпрдХ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ:

@helper Email( string address, string name = null)
{
< a href ="mailto:@(address)" > @(name ?? address) </ a >
}


рдФрд░ @Email( "google@gmail.ru" ) рдЙрдкрдпреЛрдЧ @Email( "google@gmail.ru" )

рдФрд░ рд╕рдмрд╕реЗ рдЕрджреНрднреБрдд

рдЖрдк рдЖрдорддреМрд░ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╣реЗрд▓реНрдкрд░реНрд╕ рдФрд░ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рдПрдХ .cshtml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХрддреНрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдирд╛рдо рджреЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Helpers.cshtml , рдЗрд╕реЗ AppCode рдореЗрдВ рдбрд╛рд▓реЗрдВ рдФрд░ рдлрд┐рд░ рдХрд┐рд╕реА рднреА рджреГрд╢реНрдп рдореЗрдВ рдЖрдк рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:

@ Helpers .Email( "some state" )


рдкреБрдирд╢реНрдЪ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╡рд┐рдзрд┐рдпрд╛рдВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдФрд░ рд╕реНрдерд┐рд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЕрдиреНрдп рд╡рд░реНрдЧреЛрдВ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВ

Source: https://habr.com/ru/post/In119073/


All Articles