none
how to generate custom templates for "dotnet aspnet-codegenerator view" RRS feed

  • Frage

  • I'm wondering if it's possible to create views for a model with a custom layout. I know I can pass a layout, which just provides the layout, where this views gets loaded. But the template of the view itself stays the same.

    Now I saw, after typing"dotnet aspnet-codegenerator view --help", following output

    Usage: aspnet-codegenerator [arguments] [options]
    
    Arguments:
      generator  Name of the generator. Check available generators below.
    
    Options:
      -p|--project             Path to .csproj file in the project.
      -n|--nuget-package-dir
      -c|--configuration       Configuration for the project (Possible values: Debug/ Release)
      -tfm|--target-framework  Target Framework to use. (Short folder name of the tfm. eg. net46)
      -b|--build-base-path
      --no-build
    
    Selected Code Generator: view
    
    Generator Arguments:
      viewName     : Name of the view
      templateName : The view template to use, supported view templates: 'Empty|Create|Edit|Delete|Details|List'
    
    Generator Options:
      --model|-m                          : Model class to use
      --dataContext|-dc                   : DbContext class to use
      --referenceScriptLibraries|-scripts : Switch to specify whether to reference script libraries in the generated views
      --layout|-l                         : Custom Layout page to use
      --useDefaultLayout|-udl             : Switch to specify that default layout should be used for the views
      --force|-f                          : Use this option to overwrite existing files
      --relativeFolderPath|-outDir        : Specify the relative output folder path from project where the file needs to be generated, if not specified, file will be generated in the project folder
      --controllerNamespace|-namespace    : Specify the name of the namespace to use for the generated controller
      --partialView|-partial              : Generate a partial view, other layout options (-l and -udl) are ignored if this is specified
      --useSqlite|-sqlite                 : Flag to specify if DbContext should use SQLite instead of SQL Server.

    especially interesting to me is this part:

    Generator Arguments:
      viewName     : Name of the view
      templateName : The view template to use, supported view templates: 'Empty|Create|Edit|Delete|Details|List'

    So I can provide different templates for the codegenerator. But is it actually possible to provide custom templates? I know I can create dotnet templates, which I can deploy as nuget packages. So why shouldn't I be able to create custom codegenerator templates?

    Thanks for any Help!

    Donnerstag, 28. Januar 2021 14:51

Antworten

  • Hallo Georg97.2,
    schau mal ob Du dein Toolset passend hast:
    https://docs.microsoft.com/de-de/aspnet/core/fundamentals/tools/dotnet-aspnet-codegenerator?view=aspnetcore-5.0

    HTH
    Grüße Alexander
    Mittwoch, 24. März 2021 11:29
  • Hallo Georg97,

    Versuchst Du, Scaffolding Razor Pages anzupassen? In diesem Fall solltest Du nach dem Ordner razorPageGenerator (in .net Core 2.0) suchen und dann in der Befehlszeile "view" in "razorpage" mit dem folgenden Befehl ändern:
    dotnet.exe aspnet-codegenerator --project . --no-build razorpage Add Add --force --model CategoryPerson --dataContext ContextOnlyGClasse --relativeFolderPath Views\CategoryPerson --useDefaultLayout --noPageModel
    Weitere Informationen findest Du hier:
    Custom Scaffolding Razor Pages

    Gruß,

    Ivan Dragov

    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Freitag, 29. Januar 2021 08:29
    Moderator

Alle Antworten

  • Hallo Georg97,

    Versuchst Du, Scaffolding Razor Pages anzupassen? In diesem Fall solltest Du nach dem Ordner razorPageGenerator (in .net Core 2.0) suchen und dann in der Befehlszeile "view" in "razorpage" mit dem folgenden Befehl ändern:
    dotnet.exe aspnet-codegenerator --project . --no-build razorpage Add Add --force --model CategoryPerson --dataContext ContextOnlyGClasse --relativeFolderPath Views\CategoryPerson --useDefaultLayout --noPageModel
    Weitere Informationen findest Du hier:
    Custom Scaffolding Razor Pages

    Gruß,

    Ivan Dragov

    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Freitag, 29. Januar 2021 08:29
    Moderator
  • Hallo Ivan,

    mag zwar etwas spät sein, aber ich hatte Probleme mich in diesem Forum zurecht zu finden. Er sagt auch, dass es kein Konto mit der E-Mail gibt mit der ich den alten Account (Georg97) erstellt haben sollte.

    Mir war auch nicht erkenntlich, dass ich in einem deutschen Forum poste, da alles auf Englisch war als ich den Beitrag erstellt hab.

    Jedenfall um zur Frage zu kommen: Ich denke nicht, dass ich RazorPages anpassen möchte, da ich mit MVC arbeite. Allerdings scheint der verlinkte Beitrag mein Problem sehr gut zu schildern.

    Wie es aussieht erstellt man neue templates indem man eine %TemplateName%.cshtml datei in einen Ordner packt. Für MVC templates können hier (vermutlich) noch andere Dateien in den Ordner.

    Der Beitrag ist allerdings für .net core 2.0 und in .net 5.0 gibt es diesen Ordner nicht mehr. Meine Frage wäre also wo diese Ordner in .net 5.0 zu finden ist

    Dienstag, 23. März 2021 11:11
  • Hallo Georg97.2,
    schau mal ob Du dein Toolset passend hast:
    https://docs.microsoft.com/de-de/aspnet/core/fundamentals/tools/dotnet-aspnet-codegenerator?view=aspnetcore-5.0

    HTH
    Grüße Alexander
    Mittwoch, 24. März 2021 11:29