Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Перевод. @foreach (var item in Model.List)
< /th> < th> Наименование < /th>
< th> < /th> < /tr> < /thead> @foreach (var item in Model.List) { < tr> < td> @item.ID < /td> < td> @(item.IsCorrectLang? " ": " нужен перевод") < /td> < td> @item.Header < /td> < td> @Html.ActionLink(" Изменить", " Edit", " Post", new { id = item.ID }, new { @class = " btn btn-mini" }) @Html.ActionLink(" Удалить", " Delete", " Post", new { id = item.ID }, new { @class = " btn btn-mini btn-danger" }) < /td> < /tr> } < /table> При инициализации в ForEach, в каждом объекте уже инициализируются языковые поля. Язык – тот, с которым в данный момент работаем в админке. View для редактирования тривиальна, так как мы всю работу делаем в Controller, а наш PostView уже использует языковые настройки. (/Areas/Admin/Views/Post/Edit.cshtml): @model LessonProject.Models.ViewModels.PostView
@{ ViewBag.Title = Model.ID == 0? " Добавить пост": " Изменить пост"; Layout = " ~/Areas/Admin/Views/Shared/_Layout.cshtml"; }
< h2> @(Model.ID == 0? " Добавить пост": " Изменить пост")< /h2> < p> < /p> @using (Html.BeginForm(" Edit", " Post", FormMethod.Post)) { @Html.Hidden(" ID", Model.ID) < fieldset> < div class=" control-group" > < label class=" control-label" > @(! Model.IsCorrectLang & & Model.ID! = 0? " нужен перевод": " ") < /label> < /div> < div class=" control-group" > < label class=" control-label" > Заголовок< /label> < div class=" controls" > @Html.TextBox(" Header", Model.Header, new { @class = " input-xlarge" }) @Html.ValidationMessage(" Header") < /div> < /div> < div class=" control-group" > < label class=" control-label" > Url< /label> < div class=" controls" > @Html.TextBox(" Url", Model.Url, new { @class = " input-xlarge" }) @Html.ValidationMessage(" Url") < /div> < /div> < div class=" control-group" > < label class=" control-label" > Содержимое< /label> < div class=" controls" > @Html.TextArea(" Content", Model.Content, new { @class = " input-xlarge" }) @Html.ValidationMessage(" Content") < /div> < /div> < div class=" form-actions" > < button type=" submit" class=" btn btn-primary" > Сохранить< /button> @Html.ActionLink(" Отменить", " Index", null, null, new { @class = " btn" }) < /div> < /fieldset> } Обратите внимание на подсказку о необходимости перевода. В данном случае, поля уже будут заполнены, и их нужно перевести и сохранить. Таким образом, будет добавлен перевод. Добавляем пару постов и переводим их: Ок, посты созданы. Создадим PostController в Default Area и выведем посты (/Areas/Default/Controller/PostController.cs): public class PostController: DefaultController { public ActionResult Index(int page = 1) { var list = Repository.Posts.OrderByDescending(p => p.AddedDate); var data = new PageableData< Post> (list, page); data.List.ForEach(p => p.CurrentLang = CurrentLang.ID); return View(data); } }
Index.cshtml (/Areas/Default/Views/Post/Index.cshtml): @model LessonProject.Models.Info.PageableData< LessonProject.Model.Post>
@{ ViewBag.Title = " Index"; Layout = " ~/Areas/Default/Views/Shared/_Layout.cshtml"; }
< div class=" item" > @foreach (var post in Model.List) { < h3> @post.Header< /h3> < p> @post.Content.NlToBr() < /p> < span> @post.AddedDate.ToString(" d")< /span> } < /div> < div class=" pagination" > @Html.PageLinks(Model.PageNo, Model.CountPage, x => Url.Action(" Index", new {page = x})) < /div> И проверяем: Супер!
|