Я только начинаю играть с веб-страницами (Razor), и я понял некоторые основные понятия за стеной. Прежде всего я перечисляю мое всегда иметь к вещам для каждого сайта я строй:Концепция перевода и шаблона веб-страниц ASP.NET
- Товарищеских URLS конечно (WebPages сделать это для меня)
- Переведенных UR (WebPages поддерживает параметры, так что его легко управлять)
- поддержка нескольких шаблонов (WebPages не поддерживает по умолчанию, то логика здесь требуется)
- Расстались код для каждой функции, чтобы избежать дубликатов (WebPages поддерживает его за стеной)
Так что если вы думаете о Abov e list: старый добрый шаблон MVC входит в игру. ASP.NET уже имеет структуру MVC (3), которая обеспечивает всю необходимую мне функциональность. Я это хорошо знаю. На этом вопросе я пытаюсь выяснить, будет ли технология WebPages также идеальной платформой для разработки широкомасштабных веб-проектов MVC.
Я тестировал поведение загрузки/цепочку веб-страниц и выяснил, что это действительно цепочка, созданная загруженной страницей и одним или несколькими вложенными макетами. На каждой странице макета есть указатель на страницу своего загрузчика (Родитель).
На этом этапе я должен очистить некоторые основные понятия. Поскольку WebPages разрешает URL-адреса по физическим файлам и папкам (путям), переведенные URL-адреса косвенно поддерживаются, потому что я могу создавать переведенные папки и файлы с помощью таких путей: ..../en/account/register и я могу создать другой путь, например, венгерский язык путь: .../hu/szemelyes/regisztracio.
Все что мне нужно - это разделить код, потому что его не так элегантно записывать логику регистров в файл .cshtml. WebPages поддерживает @helpers и @functions, поэтому легко создать «Account.cshtml» и создать всю необходимую мне функцию. Это официальный ответ на мой вопрос.
Что происходит за стеной, если я написал @функцию в каком-то файле .cshtml (helper)? Он создает для меня новый класс, который наследует WebPageHelper. Я думаю, что это не слишком изящно, так как я могу создать свой собственный класс для обеспечения одинаковой функциональности.
Некоторые дополнительные исследования Я обнаружил, что каждая страница (и страница макета) наследует класс WebPage по умолчанию. С директивой @inherits я могу переопределить наследование по умолчанию и его прекрасный способ создать свой собственный класс, полученный из WebPage, и во всем моем файле .cshtml я могу напрямую наследовать эту страницу.
На данный момент я могу отделить код (я думаю :) более элегантный способ, чем использование @функций. Как насчет текстовых переводов? Я думаю, что это общий способ использования файлов ресурсов, но с веб-страницами, которые, как я думаю, хранят текстовые значения в простых файлах .cshtml. Что вы думаете об этом?
Наконец мой register.cshtml:
@inherits Account.Register
@{
Title = "Please Register"
}
..и мой regisztracio.cshtml:
@inherits Account.Register
@{
Title = "Kérem regisztráljon"
}
Мой класс Account.Register имеет строковое свойство Название:
public class Register : WebPage
{
public String Title { get; set; }
...
}
Есть еще одна вещь, которую я должен сказать. Мой register.cshtml (а также regisztracio.cshtml) не содержит разметки html. У меня есть файл макета по умолчанию (_Master.cshtml), и у меня есть другие файлы макетов для каждой страницы (_Register.cshtml) в моем каталоге «Просмотр». Мой код автоматически загружает правильный файл макета страницы по имени моего загруженного класса «контроллер». Поэтому мой класс Register автоматически загружает файл макета «_Register.cshtml». И все файлы макета страницы автоматически загружают _Master.cshtml (или _Mobile.cshtml, если посетитель использует мобильное устройство), который является основным макетом.
Таким образом, я считаю, что это шаблон MVC, реализованный для технологии WebPages, и сохраняет веб-страницы в сильной функциональности, как автоматическое определение URL-адресов.
Как вы думаете?
Так это моя основная концепция с WebPages
Да, если бы я использовал традиционные файлы ресурсов, мне не нужен два или более файлов для конкретных языков для переводов. Но мне все еще нужны эти два или более файла для перевода url. Если я сохраняю только один файл на странице и использую файлы культуры и ресурсов, как я могу переводить URL-адреса? WebPages уже имеет маршрутную маршрутизацию маршрута, поэтому я думаю, что было бы легко построить мою концепцию для перевода url. Затем мне по-прежнему нужны отдельные файлы страниц для каждого языка. Тогда эти файлы будут пригодны для хранения текстов, специфичных для языка. – ggabor
Вы можете создавать маршруты, которые пересылают пользователей на один и тот же вид, но имеют разные URL-адреса. Посмотрев на свой код, у вас есть контроллер, называемый учетной записью, и просмотр называется регистром. По умолчанию маршрут может быть одинаковым. Чтобы получить доступ к маршруту на венгерском языке, у вас будет что-то вроде этого: 'routes.MapRoute (« RegisterAccountHungarian »,« szemelyes/regisztracio/{id} », новый {controller =" account ", action =" register ", id = UrlParameter. Необязательно}); 'Вам нужно будет добавить параметр языка. – Igorrious
И если бы я сделал это, мне нужно создать MapRoute для каждой переведенной папки и файла. С помощью WebPages уже выполняется по умолчанию механизм маршрутизации, основанный на путях. Я знаю, как работает MVC3. Здесь я пытаюсь построить новую концепцию для платформы WebPages. Поэтому я не хочу использовать функцию MapRoute. Я пытаюсь создать свое решение на основе простых путей к файлам - папкам и файлам. Я ищу наилучший, идеальный подход для этой технологии WebPages. Не для среды MVC3. – ggabor