Как создать специальный маршрут визуализации представления запроса и как его зарегистрировать?



Маршруттарды құру үшін MapRoute әдіснамасын қолданамыз. Мысалы:

public class RouteConfig

{public static void RegisterRoutes(RouteCollection routes)

{routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute(

name: "newRoute",

url: "{controller}/{action}"; )}}

 

Немесе Route обьектісін құрып одан кейін оны RouteCollection маршруттар жиынтығына қосамыз. Екі маршрутты анықтаймыз:

public class RouteConfig

{public static void RegisterRoutes(RouteCollection routes)

{ routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute(

name: "Default",

url: "{controller}/{action}/{id}");

 

Route newRoute = new Route("{controller}/{action}", new MvcRouteHandler());

routes.Add(newRoute);}}

Сонымен бұл жерде екі маршрут анықталған. Бірінші маршрут үш сегментті бар сұраныстарды қанағаттандырады. Екіншісі newRoute тек қана екі сегменті бар сұраныстармен қанағаттандырылады.

 

 

Назовите основные встроенные помощники Helper. Приведите хотя бы один такой встроенный помощник.

MVC Framework включает в себя несколько встроенных вспомогательных методов, предназначенных для создания форм HTML.

Создаем элементы form

Одним из наиболее распространенных способов взаимодействия с пользователем в веб-приложении являются HTML-формы, которые можно создавать с помощью целого ряда вспомогательных методов. Чтобы продемонстрировать методы, предназначенные для работы с формами, мы внесли некоторые дополнения в наш пример проекта. Для начала мы создали новый класс Person.cs в папке Models.

Модель Person

using System;

 

namespace HelperMethods.Models

{

public class Person

{

public int PersonId { get; set; }

public string FirstName { get; set; }

public string LastName { get; set; }

public DateTime BirthDate { get; set; }

public Address HomeAddress { get; set; }

public bool IsApproved { get; set; }

public Role Role { get; set; }

}

 

public class Address

{

public string Line1 { get; set; }

public string Line2 { get; set; }

public string City { get; set; }

public string PostalCode { get; set; }

public string Country { get; set; }

}

 

public enum Role

{

Admin,

User,

Guest

}

}

 

 

Для чего используются шаблоны методов помощника? Назовите хотя бы один такой метод?

Шаблон Role.cshtml работает, поскольку ASP.NET MVC Framework сначала ищет специальные шаблоны для заданного типа C# и только затем использует встроенные шаблоны. В действительности при поиске подходящего шаблона инфраструктура ASP.NET MVC Framework следует специфической последовательности:

1. Шаблон, переданный вспомогательному методу - например, вызов Html.EditorFor(m => m.SomeProperty, "MyTemplate") приводит к использованию шаблона MyTemplate.

2. Любой шаблон, указанный атрибутами метаданных, такими как UIHint.

3. Шаблон, ассоциированный с любым типом данных, который указан с помощью атрибутов метаданных, таких как DataType.

4. Любой шаблон, который соответствует имени класса .NET обрабатываемого типа данных.

5. Встроенный шаблон String, если обрабатываемый тип данных является простым.

6. Любой шаблон, который соответствует базовым классам типа данных.

7. Если тип данных реализует интерфейс IEnumerable, будет использоваться встроенный шаблон Collection.

8. Если все проверки завершились неудачно, будет применяться шаблон Object - результат действия правила о том, что формирование шаблонов не является рекурсивным.

Некоторые из перечисленных шагов полагаются на встроенные шаблоны, которые были описаны в предыдущей статье. На каждом этапе процесса поиска шаблона инфраструктура ASP.NET MVC Framework ищет шаблон по имени EditorTemplates/<имя> для вспомогательных методов редакторов или DisplayTemplates/<имя> для вспомогательных методов отображения. Для шаблона Role удовлетворяется условие на шаге 4 процесса поиска, т.к. был создан шаблон по имени Role.cshtml, который помещен в папку /Views/Shared/EditorTemplates.

Специальные шаблоны обнаруживаются с использованием того же алгоритма поиска, что и для обычных шаблонов; это означает, что мы можем создать специальный шаблон, специфичный для контроллера, поместить его в папку ~/Views/<Контроллер>/EditorTemplates и тем самым переопределить шаблоны, расположенные в папке ~/Views/Shared/EditorTemplates.


Дата добавления: 2018-02-15; просмотров: 445; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!