Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Перевод. @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>

И проверяем:

Супер!






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.