Как определять необязательные сегменты URL? Приведите примеры необязательных сегментов.
Стандартты URL сұралымы (запрос) кезінде қателіктің болу себебі URL алдыңғы анықталған маршрутпен сәйкес келмейтінінде. Стандартты URL маршрутизация жүйесінде « ̴ /» осылай белгіленеді және бұл жолда controller және action айнымалыларымен сәйкес келетін ешқандай сегмент жоқ. Стандартты мағына (defaults) URL - мен сәйкес келер мағына болмағанда қолданылады. Қосымша (міндетті емес)URL сегменті - пайдаланушы анықтай алмайтын сегмент, бірақ стандартты мән берілмейді. Қосымша (міндетті емес)URL сегментке мысал:
using System.Web.Mvc;
using System.Web.Routing;
Namespace UrlsAndRoutes
{public class RouteConfig
{ public static void RegisterRoutes(RouteCollection routes)
{routes.MapRoute(
name: "MyRoute",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index",
id = UrlParameter.Optional });}}}
Бұл маршрут id сегменті бар немесе жоқ URL-мен сәйкес келеді.
URL-дің қосымша (міндетті емес) сегменті бар айнымалы мен сәйкестігі
Сегменттер саны | URL мысалдары | Онда не бейнеленеді? |
0 | mysite.com | controller= Home, action = Index |
1 | mysite.com/Admin | controller= Admin, action = Index |
2 | mysite.com/Admin/List | controller= Admin, action = List |
3 | mysite.com/Admin/List/All | controller= Admin, action = List, id=All |
4 | mysite.com/Admin/List/All/Delete | Сегменттер көп, сәйкестік жоқ |
Кестеде айнымалы id кіріс URL мекенжайында тиісті сегмент болған кезде ғана айнымалы жиынтыққа қосылатынын көрсетеді. Бұл пайдаланылатын мүмкіндік айнымалы мәнін берген-бермегенін білу кезінде пайдалы. Егер қосымша(необязательный) сегмент айнымалысы үшін ешқандай мән көрсетілмесе, тиісті параметрдің мәні бос (null).
|
|
Перечислите соответствия URL с необязательными переменными сегмента.
URL-дағы барлық сегменттер айнымалылар болып келмейді.Сонымен қатар статикалық сегменті бар паттерндер құра аламыз.Егер бізге URL-мен сәйкес келетін URL қолдауы табылса онда PUBLIC-тен басталады:
http://mydomain.com/Public/Home/Index
Біз мұны келесі паттерн арқылы жасаймыз.
URL паттерн статикалық сегментпен:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
namespace UrlsAndRoutes
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute("ShopSchema","Shop/{action}",
new{ controller ="Home"});
routes.MapRoute("", "X{controller}/{action}");
routes.MapRoute("MyRoute", "{controller}/{action}",
new { controller = "Home", action = "Index" });
routes.MapRoute("", "Public/{controller}/{action}",
new { controller = "Home", action = "Index" });
}
}
}
Біз қосқан Роут бірінші сегменті Shop болатын кез келген екісегментті
URL-ге сәйкес келеді. Action мәні URL-дің екінші сегментінен алынады. URL
|
|
Паттернінің сегменті controller үшін жоқ, сондықтан , келісім бойынша берілген мән қолданылады. Бұл Shop контроллері әрекетіне арналған сұраныс Home контроллеріне арналған сұранысқа алып келеді. Бұл роуттың қолдану нәтижесін көру үшін қосымша қосу және /Shop/Index URL бойынша жүргізу керек. Біз қосқан роут Home контроллеріндегі Index әрекетіне бейімделуге апарады.
Как осуществляется получение исходных данных в приложении, созданного по технологии ASP.NET MVC?
Получение данных между контроллером и представлением
Чтобы отобразить представление, используется метод View контроллера. Для передачи данных представлению используется свойство ViewData класса ViewPage. Это свойство возвращает объект ViewDataDictionary, содержащий учитывающие регистр строковые ключи. Для передачи данных в представление можно записывать данные в словарь, как показано в следующем примере:
C#
Dim petList As List(Of String) = New List(Of String)petList.Add("Dog")petList.Add("Cat")petList.Add("Hamster")petList.Add("Parrot")petList.Add("Gold fish")petList.Add("Mountain lion")petList.Add("Elephant") ViewData("pets") = New SelectList(petList)Если метод View вызывается без параметров (как в предыдущем примере), свойство ViewData объекта контроллера передается в представление, имеющее то же имя, что и метод действия.
|
|
На странице представления можно обратиться к свойству ViewData, чтобы получить данные, переданные представлению. Свойство ViewData — это словарь, поддерживающий индексатор, принимающий ключи словаря.
В следующем примере показана разметка для представления, отображающего данные в форме HTML и дающего пользователю возможность изменять значения и делать выбор.
C#
Дата добавления: 2018-02-15; просмотров: 359; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!