NamespaceWorkingWithRazor.Controllers



{

PublicclassHomeController : Controller

{

// ...

  [ChildActionOnly]

Public ActionResult Time()

   {

return PartialView(DateTime.Now); } }}

Дочерные действия Html.Action () көмекші әдісі арқылы шақырылады. Оны пайдалану әдісі орындалады, ViewResult өңделеді және шығыс клиентке арналған жауапқа енгізіледі.

@{

ViewBag.Title = "List";

Layout = null;

}

<em>Это файл представления <b>~/Views/Common/List.cshtml</b></em>

<br /><br />

@Html.Partial("MyPartial")

@Html.Partial("MyStronglyTypedPartial",

new List<string> { "Яблоко", "Апельсин", "Груша" })

@Html.Action("Time")

Дочерные действия көрсету үшін екі қосалқы HTML әдісі Action and RenderAction қол жетімді. Бұл көмекші HTML әдісі ChildActionExtensions класында.

Приведите пример встроенных клиентских методов помощника Helper.

Также для определения хелпера мы можем использовать стандартные классы на C#. Для этого нам надо создать новый класс с методом расширения - то есть таким методом, который расширяет функциональность уже существующих классов. А эти классы указываются в качестве первого параметра метода. Итак, создадим в проекте новую папку Helpers и добавим в нее новый класс ListHelper:

using System;

using System.Web;

using System.Web.Mvc;

using System.Linq;

Namespace BookStore.Helpers

{

Public static class ListHelper

{

public static MvcHtmlString CreateList(this HtmlHelper html, string[] items)

   {

       TagBuilder ul = new TagBuilder("ul");

Foreach (string item in items)

       {

           TagBuilder li = new TagBuilder("li");

li.SetInnerText(item);

           ul.InnerHtml += li.ToString();

       }

return new MvcHtmlString(ul.ToString());

}

}

}

В новом классе хелпера определен один статический метод CreateList, принимающий в качестве первого параметра объект, для которого создается метод. Так как данный метод расширяет функциональность html-хелперов, которые представляет класс HtmlHelper, то именно объект этого типа и передается в данном случае в качестве первого параметра. Второй параметр метода CreateList - массив строк-значений, которые потом будут выводиться в списке.

В самом методе с помощью объекта TagBuilder конструируется стандартный элемент html - элемент ul. При обходе массива все строковые значения обертываются в тег li и добавляются в список. И на выходе возвращается полноценные элемент ul.Класс TagBuilder имеет ряд членов, которые можно использовать при таком подходе:

  • Свойство InnerHtml позволяет установить или получить содержимое тега в виде строки
  • Метод MergeAttribute (string, string, bool) позволяет добавить к элементу один атрибут. Для получения всех атрибутов можно использовать коллекцию Attributes
  • Метод SetInnerText(string) устанавливает текстовое содержимое внутри элемента
  • Метод AddCssClass(string) добавляет класс css к элементу

После создания нового хелпера мы его можем использовать в представлении. Перепишем предыдущий пример следующим образом:

@{

string[] cities = newstring[] { "Лондон", "Париж", "Москва" };

}

@{

string[] countries = new string[] { "Великобритания", "Франция", "Россия" };

}

@using BookStore.Helpers

<h3>Города</h3>

@Html.CreateList(cities)

<br />

<h3>Страны</h3>

<!-- или можно вызвать так -->

@ListHelper.CreateList(Html, countries

Как осуществить шифрование строк с помощью метода помощника Helper? Приведите пример.

көрінісінде мазмұнды көрсету үшін, біз т.б. сіз блоктар құруға мүмкіндік стандартты HTML-элементтер, тізімдер, кестелер, пайдалана аласыз HTML-хелперлердің - Бірақ нақты HTML-элементтер, сонымен қатар, біз арнайы әдістер пайдалануға болады орналасуын жасауға. Бас көмекші «көмекші әдісі» деп ағылшын аударуға болады. Ал шын мәнінде HTML-хелперлердің, мақсаты көмекші әдістері - HTML-түзетулерін генерациялау.қарапайым HTML-жәрдемші жасау үшін түріне ASP.NETCore 2.0 жобасын қабылдауға WebApplication (Model-қарау-Controller ) және қалта қосу App_Code . Содан кейін жаңа класс қосу үшін осы қалтада ListHelper :

PublicstaticclassListHelper

{ public static HtmlString CreateList(this IHtmlHelper html, string[] items)

   {string result = "<ul>";


Дата добавления: 2018-02-15; просмотров: 147;