рдирдорд╕реНрддреЗ рджреЛ рд╕рд╛рд▓ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рддрдХ рдореИрдВрдиреЗ рдкреАрд╕реАрдкреА рдкрд░ рд╡реЗрдмрд╕рд╛рдЗрдЯреЗрдВ рдмрдирд╛рдИрдВ рдФрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рд░рд╣рд╛ред рд▓реЗрдХрд┐рди рдПрдХ рджрд┐рди рд╡рд╣ рдЬрд╛рдЧ рдЧрдпрд╛ рдФрд░ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ php рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред рддрдм рдореИрдВрдиреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдХрд┐ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рддреБрд▓рдирд╛ рдХреА, рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ред рдирддреАрдЬрддрди, рдореИрдВ C # рдФрд░ ASP.NET MVC рдкрд░ рдмрд╕ рдЧрдпрд╛ред Zend рдлреНрд░реЗрдорд╡рд░реНрдХ 2 рдХреЗ рдмрд╛рдж рднреА - MVC 4 рдореЗрдВ рдмрд╕ рдХреБрдЫ рдерд╛: рдЖрд╕рд╛рди, рд╕реБрдВрджрд░, рд╕рд░рд▓, рддреЗрдЬ, рдереЛрдбрд╝рд╛ рдХреЛрдбред
рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛, рдЬрд┐рд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди Google рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреА рдХреИрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╕реЗрдЯ рдХрд░реЗрдВред рдореИрдВ "рдЕрдиреБрднрд╡реА" рдХреЗ рд▓рд┐рдП рд╕реЛрдЪрддрд╛ рд╣реВрдВ - рдпрд╣ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреЛ рдПрдХ рдмрд╛рд░ "рдбреНрд░рд╛рдЗрд╡ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ" рдФрд░ рдЖрдк рдлрд┐рд░ рдХрднреА рдпрд╛рдж рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рдереАрдВред рд▓реЗрдХрд┐рди рдПрдХ рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдЪрд╛рд░реЛрдВ рдУрд░ рд╣реЛ рдЬрд╛рдирд╛ рдХрд╛рдлреА рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдХрдард┐рди рдерд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐ ASP.NET MVC рдореИрдиреБрдЕрд▓ рдХрд┐рд╕реА рднреА PCP рдврд╛рдВрдЪреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╡рд┐рдХ рд╕реНрдЯрд╛рд░реНрдЯ рд╕реЗ рдмреЗрд╣рддрд░ рдкрд░рд┐рдорд╛рдг рдХрд╛ рдПрдХ рдХреНрд░рдо рд╣реИред
рдпрд╣ рдореИрдиреБрдЕрд▓ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрди рд▓реЗрдЦреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдЬреНрдЮрд╛рди рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ:
рдПрдХ ASP.NET MVC рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ ред рдпрд╛ рдпреЗ:
ASP.NET MVC 4 рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓рдЖрдЗрдП рдбреНрд░реЙрдкрдбрд╛рдЙрди рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░реЗрдВред
1) рдореЙрдбрд▓ред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдПрдиреЛрдЯреЗрд╢рди рдФрд░ рд▓рд┐рдВрдХ рдирд╣реАрдВ рд╣реИрдВред
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace zf2.Models { public class NewsM { public int NewsMID { get; set; } public int ParentID { get; set; } public string Title { get; set; } public string AddTitle { get; set; } public string Description { get; set; } public string Content { get; set; } public DateTime ModDate { get; set; } } }
2) рдирд┐рдпрдВрддреНрд░рдХред рдХрдВрдЯреНрд░реЛрд▓рд░ рдлрд╝реЛрд▓реНрдбрд░ рдкрд░ рдХрдВрдЯреНрд░реЛрд▓рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ: "рдПрдорд╡реАрд╕реА-рдХрдВрдЯреНрд░реЛрд▓рд░, рдЗрдиреНрдЯреАрдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░реАрдб, рд░рд╛рдЗрдЯ рдФрд░ рд╡реНрдпреВ рдХреЗ рд╕рд╛рде", рдореЙрдбрд▓ рдХреНрд▓рд╛рд╕ "рдиреНрдпреВрдЬрд╝рдПрдо", рдбреЗрдЯрд╛ рд╕рдВрджрд░реНрдн рдХреНрд▓рд╛рд╕: рдЬреЛ рдПрдХ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдФрд░ рдЗрд╕рдореЗрдВ рдПрдХ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ:
// private void PopulateDepartmentsDropDownList(object selectedDepartment = null) { var departmentsQuery = (from d in db.NewsMs orderby d.NewsMID select d).ToList<NewsM>(); // , Contoso University //NewsMID = 0 - value //Title = "Add to root" - text departmentsQuery.Add(new NewsM { NewsMID = 0, Title = "Add to root" }); ViewBag.ParentID = new SelectList(departmentsQuery, "NewsMID", "Title", selectedDepartment); // departmentsQuery - , DropDownList //"NewsMID" - , value //"Title" - , text (, ) //selectedDepartment - selected. . }
рддрдм рд╣рдо рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдХреНрд░рд┐рдПрдЯ рдФрд░ рдПрдбрд┐рдЯ рдХрд╣рддреЗ рд╣реИрдВ:
// GET: /News/Create public ActionResult Create() { PopulateDepartmentsDropDownList(); return View(); } // GET: /News/Edit/5 public ActionResult Edit(int id = 0) { NewsM newsm = db.NewsMs.Find(id); if (newsm == null) { return HttpNotFound(); } // newsm.ParentID - selected . PopulateDepartmentsDropDownList(newsm.ParentID); return View(newsm); }
3) рджреГрд╢реНрдп рдореЗрдВред рдмрд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЛ рд╕рд╣реА рдЬрдЧрд╣ рдкрд░ рдЬреЛрдбрд╝реЗрдВред
Create.cshtml рдФрд░ Edit.cshtml
<div class="editor-label"> @Html.LabelFor(model => model.ParentID) </div> <div class="editor-field"> @Html.DropDownList("ParentID") @Html.ValidationMessageFor(model => model.ParentID) </div>
рд╡реИрд╕реЗ, рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдореЙрдбрд▓ рдХрд┐рд╕реА рднреА рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд╢рд┐рдХрд╛рд░ рдХреЗ рдЧрддрд┐рд╢реАрд▓ рдореЗрдиреВ рдХреЗ рднрдВрдбрд╛рд░рдг рдФрд░ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╣реИред рдЙрд╕рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ рдорд╛рдорд▓рд╛ рднреА рдерд╛ред рдореИрдВ рдЖрдкрдХреЛ рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ред