Lolstore.info рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп ViewModel рд╡рд┐рд░рд╛рд╕рдд рдФрд░ рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд╢рд┐рдХрд╛рд░ рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖

рдЕрднрд┐рд╡рд╛рджрди, рд╣рд░рдЪрд┐рдЯреЗрд▓ред
рдореИрдВ рдмрд╛рдЗрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬреЛ Asp.Net Mvc рдХреЗ рдЕрдзреНрдпрдпрди рдФрд░ lugstore.info рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЖрдпрд╛ рдерд╛ред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рднреА рд╣реЛрдЧрд╛ред

рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕рдорд╕реНрдпрд╛ / рд▓рдХреНрд╖реНрдп рддреИрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ:

рд╣рд░ рдЪреАрдЬ рдкрд░ рдЪреЛрдЯ рдХрд░реЗрдВред рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗ рдХрдИ (!) рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП ViewModel рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдФрд░ рдкрд╛рд░рджрд░реНрд╢реА рддрд░реАрдХрд╛ рдЦреЛрдЬреЗрдВ рдФрд░ рд╕рдВрдХрд▓рди рдЪрд░рдг рдореЗрдВ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд╕рд╛рде рдЙрдирдХреЗ рд░реЗрдВрдбрд░ рдХрд░реЗрдВред

рд╕реНрдерд┐рддрд┐ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рддреАрд╡реНрд░ рд╣реЛ рдЬрд╛рддреА рд╣реИ рдЬрдм рдорд╛рд╕реНрдЯрд░рдкреЗрдЬ рдХреЛ рдПрдХ ViewModel (html рд╢реАрд░реНрд╖рдХ, рд╕реБрд▓рдн рдореЗрдиреВ, рдЖрджрд┐) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдкреГрд╖реНрда рдХреЛ рджреВрд╕рд░реЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрд╛рдЦреНрдпрд╛рдиреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА), рдФрд░ рдкреЗрдЬрд▓реЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрдо рддреМрд░ рдкрд░ рдПрдХ рддрд┐рд╣рд╛рдИ (рдЯреИрдЧ рдХреА рд╕реВрдЪреА) рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдкреЗрдЬрд▓реЗрдЯреНрд╕ рдХреА рдЖрд╕рд╛рди рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрдЬрд▓реАред

рдЦреИрд░, рдЖрдЗрдП рд╕рдордЭрдиреЗ рд▓рдЧрддреЗ рд╣реИрдВ:
рд╡рд┐рдЪрд╛рд░ рдХреА рдЙрдбрд╝рд╛рди:

рдкреНрд░рддреНрдпреЗрдХ ViewModel рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдХреНрдпрд╛ рд╣реИ? рдореИрдВрдиреЗ рд╕реЛрдЪрд╛, рдЪрд╛рдп рдХреА рдЪреБрд╕реНрдХреА рд▓реЗ рд░рд╣рд╛ рд╣реВрдВред рдЗрд╕рдХрд╛ рдЙрддреНрддрд░ рд╕реНрд╡рдпрдВ рд╣реА рд╣реЛ рдЧрдпрд╛ рд╣реИ: рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдмрд╕ рдПрдХ рдХрдВрдЯреЗрдирд░, рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдмрд┐рдирд╛ рддрд░реНрдХ рдХреЗ (рдореИрдВ рднреА HtmlHelper рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рддрд░реНрдХ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ)ред

рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗ рдореМрдЬреВрджрд╛ рдЙрдкрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрдИ рдореЙрдбрд▓ рдХреЛ рд╡реНрдпреВ рдореЗрдВ рдХреИрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ? - рдкреЗрдп рдХрд╛ рдПрдХ рдФрд░ рдШреВрдВрдЯ, - рдорд┐рдореА, рдПрдХ рд╣реА ViewData рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкрд╣рд▓реЗ рддреЛ рдореИрдВрдиреЗ рдЗрд╕реЗ рдордирд╛ рдХрд░ рджрд┐рдпрд╛ рдерд╛ред

рд╕рдВрдХрд▓рд┐рдд рд╕рдордп рдкрд░ рдЯрд╛рдЗрдк рдЪреЗрдХрд┐рдВрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреБрдВрдЬреА рдЦреЛрдЬ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдПрдВ? - рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп! - рдПрдХ рдХреБрдХреА рд╕рд╛ред

рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП, рд▓реЗрдХрд┐рди рддрд╛рдХрд┐ рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рди рдорд┐рд▓реЗ? - рддрдХреА рдПрдХреНрд╕рдЯреЗрдВрд╢рдиред

...

рд▓рд╛рдн:

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рджреЛ рддрд░реАрдХреЛрдВ рд╕реЗ рдиреАрдЪреЗ рдЖрдпрд╛:
рдЕрдиреНрдп рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗрд╡рд▓ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝реЗ рдЧрдП рдереЗ (рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдХреБрдЫ рдЬреЛрдбрд╝реЗ рд╣реИрдВ):
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдерд┐рд░ TModel рдореЙрдбрд▓ < TModel > ( рдпрд╣ рдирд┐рдпрдВрддреНрд░рдХ рдирд┐рдпрдВрддреНрд░рдХ )
{
рд╡рд╛рдкрд╕реА рдирд┐рдпрдВрддреНрд░рдХред рджреГрд╢реНрдпрджрд╛ ред рдореЙрдбрд▓ < TModel > ( ) ;
}

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдерд┐рд░ TModel рдореЙрдбрд▓ < TModel > ( рдпрд╣ HtmlHelper htmlHelper )
{
htmlHelper рдкрд░ рд▓реМрдЯреЗрдВред рджреГрд╢реНрдпрджрд╛ ред рдореЙрдбрд▓ < TModel > ( ) ;
}

рдкреНрд▓рд╕рд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:рдХреБрдЫ minuses:
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ:
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ ActionResult рдбрд┐рдлрд╝реЙрд▓реНрдЯ ( )
{
...
// рдкреЗрдЬрд▓реЗрдЯ рдореЗрдВ рд░реЗрдВрдбрд░
рдпрд╣ ред рдореЙрдбрд▓ < TagListViewModel > ( ) ред MyBlaBlaBlaProperty = " lolstore.info " ;

// рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдорд╛рд╕реНрдЯрд░ рдкреГрд╖реНрда рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдпрд╣ ред рдореЙрдбрд▓ < UserMenuViewModel > ( ) ред MyBlaBlaBlaProperty2 = "рдЬреЛрдХреНрд╕" ;
}

рдордЬрдмреВрдд рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдмрд┐рдирд╛ рджреЗрдЦреЗрдВ:
<% = рдпрд╣ ред рдореЙрдбрд▓ < TagListViewModel > ( ) ред MyBlaBlaBlaProperty %>

HtmlHelper рдореЗрдВ:
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдереИрддрд┐рдХ MvcHtmlString рд░реЗрдВрдбрд░рд╕рдорд░реНрдерди ( рдпрд╣ HtmlHelper htmlHelper )
{
рдЕрдЧрд░ ( htmlHelperред ModelExists < TagListViewModel > ( ) )
{
рдирдП MvcHtmlString ( рд╕реНрдЯреНрд░рд┐рдВрдЧред рдЦрд╛рд▓реА ) рд▓реМрдЯреЗрдВ ;
}

TagListViewModel рдореЙрдбрд▓ = htmlHelperред рдореЙрдбрд▓ < TagListViewModel > ( ) ;
// рдХреНрдпрд╛ рдзрд╛рдЧрд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛
}

рдкреВрд░реА рдкреВрд░реА рдХреЛрдб рдлрд╝рд╛рдЗрд▓ рдпрд╣рд╛рдБ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ ред

ZY рдпрджрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рдпреЛрдЧ рдирд┐рд╡рд╛рд╕рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реИрдВ рдФрд░ рди рдХреЗрд╡рд▓ рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреИрд╢рд┐рдВрдЧ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░реВрдБрдЧрд╛, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдСрдЯреЛрдореИрдкрд░ (рд╡рд┐рд░рд╛рд╕рдд, рдЗрдВрдЯрд░рдлреЗрд╕, рд▓реЗрдХрд┐рди рд╕рдВрдХрд▓рди рдЪрд░рдг рдореЗрдВ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд╕рд╛рде) рдФрд░ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреАрддрд╛рдУрдВ рдореЗрдВ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдореЗрдВ рдХреНрд▓реЛрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред ред

рдпреВрдЬреАрдирдУрд╕реНрдЯрд╛рдкрдЪреБрдХ рджреНрд╡рд╛рд░рд╛

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


All Articles