Squeak.ru - шаблоны программирования

Изменение шаблонов кода T4 для ASP.NET MVC, чтобы избавиться от полной ссылки на пространство имен

Мы используем (необходимо указать, где находятся файлы, спасибо) пользовательские шаблоны кода T4 при создании представления или контроллера. Реализация по умолчанию делает этот вид первой строкой.

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<ProjectNameHere.ViewModels.ViewModelClass>" %> 

У нас уже есть пространство имен ViewModel и MVC, определенное в Web.config, поэтому я хотел бы, чтобы шаблон кода генерировал это.

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="ViewPage<ViewModelClass>" %>

Любые предложения, как изменить шаблоны по умолчанию, чтобы получить такие результаты? Какая из строк шаблона на самом деле генерирует их?

Дополнительная информация

Я знаю, где находятся файлы, и были внесены изменения. Проблема в том, что в шаблоне они используют это

string mvcViewDataTypeGenericString = (!String.IsNullOrEmpty(mvcHost.ViewDataTypeName)) ? "<" + mvcHost.ViewDataTypeName + ">" : String.Empty;

Кажется, что ViewDataTypeName содержит полную ссылку на пространство имен. Я хотел бы получить только имя класса (в данном случае имя класса ViewModel)


Ответы:


1

Вы можете найти шаблоны здесь:

*\Microsoft Visual Studio\Common7\IDE\ItemTemplates\CSharp\Web\MVC 2\CodeTemplates*

Там вы можете редактировать сгенерированный код для каждого шаблона, строки шаблона различаются для каждого шаблона, поэтому я не могу вам сказать, но вы сразу их заметите.

ИЗМЕНИТЬ

Исходный код для Web.Extensions недоступен, но вы можете использовать отражатель и просмотреть сборку \Microsoft Visual Studio \Common7\IDE\Microsoft.VisualStudio.Web.Extensions.dll, чтобы увидеть, что " mvcHost" дает вам :)

Затем вы заметите свойство ViewDataType, которое является «типом», и тогда вы сможете создать некоторую логику вокруг него, чтобы получить имя класса.

15.02.2011
  • Спасибо за ваш ответ. Кажется, что нет более чистого способа сделать это, чем манипулировать строкой пространства имен. 17.02.2011
  • Новые материалы

    Угловая структура архитектуры
    Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

    «Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
    Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

    Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
    В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

    Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
    React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

    Создайте API с помощью Python FastAPI
    Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

    Веселье с прокси-сервером JavaScript
    Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

    Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
    Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...