Net Framework, Office 365, C#, WPF, ASP.Net, Visual Studio, Programmiersprachen PC, C# Programmieren, vba, SQL Server, free source code snippets Antivirus free
#

Asp.Net Core MVC: Alternative URL Routen anlegen

 

Ich möchte in meiner Asp.Net Core MVC Anwendung für die Liste eine andere URL Bezeichnung als die Standard Bezeichnung.

Bei Asp MVC Anwendungen werden der Pfad wie folgt automatisch vorgegeben:

Domain/Controller/Index

Im Beispiel wäre das: Https://CodeDocu.com/Note/Index

 

Für die Anwendung möchte ich aber die Liste mit allen Ergebnissen in dem Plural-Pfad /Notes mit einem -s legen und die Liste wird von Index auf Index_All und Index_Own aufgeteilt.

 

Ohne Routing

Wenn die Route oder das Routing nicht in Asp.Net MVC Anwendungen eingestellt wird, dann erscheint bei der Eingabe: eine Leere Seite

 

Standard  URL-Route:

Im Standard unter ASP.Net MVC wird die Route nach dem Muster: Domain/Controller/Action/ID geroutet.

Wenn es keine Action-Methode Index gibt, dann bleibt die Browser Antwort leer.

 

Wenn man eine neue Methode geschrieben hat und diese für den Aufruf werden möchte, dann stellt man ein sogenannten Routing-Attribute vor die Methode.

[Route("Index")]

[Route("Index_All")]

public async Task<IActionResult> Index_All()

..

 

Route("..") Attribute

Dabei muss man beachten, dass es zwei Route-Attribute in einem Asp.Net MVC Controller zu definieren gibt.

Das erste Attribute wird als Route für den Controller bie der Public Class vorangestellt.

Das zweite Attribute wird bei der public Action beschrieben und definiert die Controller/Action Route

 

 

Verschieben von /Note zu /Notes

 

namespace IWois_Core.Controllers

{

 

    [Route("Notes")]

    public class NoteController : Controller

    {

        private readonly ApplicationDbContext _dbContext;

 

        public NoteController(ApplicationDbContext context)

        {

            _dbContext = context;

        }

 

        // GET: /Note Root

        [Route("Index")]

        [Route("Index_All")]

        public async Task<IActionResult> Index_All()

        {

            //-------------< Index /Notes_All >-------------

            //--< Get User ID >--

            //internal referenz-Number for tracking in tables

            long IDUser = await Userinfos.UserInfo_Methods.getIDUser_as_Number(this.User,_dbContext ) ;

            //--</ Get User ID >--

 

            //< content_logger >

            int? sumLogViews=0;

            sumLogViews = await counter_Note_List_erhoehen(IDUser);

            //</ content_logger >

 

 

            ..

..

 

 

            //< out to view >

            return View(data_to_View);

            //</ out to view >

            //-------------</ Index /Notes All >-------------

        }

 

        // GET: /Note Own Root

        [Route("Index_Own")]

        public async Task<IActionResult> Index_Own()

        {

            //-------------< Index /Notes >-------------

            //--< Get User ID >--

            //internal referenz-Number for tracking in tables

            long IDUser = await Userinfos.UserInfo_Methods.getIDUser_as_Number(this.User, _dbContext);

            //--</ Get User ID >--

 

            //< content_logger >

            int? sumLogViews = 0;

            sumLogViews = await counter_Note_List_erhoehen(IDUser);

            //</ content_logger >

 

 

Fehlermeldungen:

Weitere Fehlermeldung bei falscher Routing Einstellung

 

Fehler-Ursache:

Die Route darf keine Eckige Klammer enthalten. Eckige Klammern werden nur für [Controller] und [Action] verwendet

[Route("[Index_Own]")]

public async Task<IActionResult> Index_Own()

{..

 

 

An unhandled exception occurred while processing the request.

InvalidOperationException: The following errors occurred with attribute routing information:

 

Error 1:

For action: 'IWois_Core.Controllers.NoteController.Index_Own (IWois_Core)'

Error: While processing template 'Notes/[Index_Own]', a replacement value for the token 'Index_Own' could not be found. Available tokens: 'action, controller'. To use a '[' or ']' as a literal string in a route or within a constraint, use '[[' or ']]' instead.

Microsoft.AspNetCore.Mvc.Internal.ControllerActionDescriptorBuilder.Build(ApplicationModel application)

Mobile
»
Asp Core Umleitung http zu https und www. Zu direkt Domain-Host
»
Asp MVC Core: URL Query Parameter
»
Asp Core MVC: neu Start-Datei definieren, Start Controller View
»
Asp MVC : HTML Links statt Asp Server Side Links
»
AmbiguousActionException: Multiple actions matched
»
Asp.Net Core MVC: Alternative URL Routen anlegen

.

Jobs, Projekte, Angebote für Freiberufler, Selbstständig an Raimund.Popp@Microsoft-Programmierer.de