IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET MVC Discussion :

ASP.net Core public IActionResult IndexComponent() => PartialView(); ? [Débutant]


Sujet :

ASP.NET MVC

  1. #1
    Membre habitué Avatar de Nadinette
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2012
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 264
    Points : 144
    Points
    144
    Par défaut ASP.net Core public IActionResult IndexComponent() => PartialView(); ?
    Salut,

    Je suis en train d'explorer l'exemple suivant : https://www.codeproject.com/Articles...-Angular-part1

    Dans le projet, il y a un controlleur qui s'appelle PartialController :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    using Microsoft.AspNetCore.Mvc;
     
    namespace MyPrettyCMSCore.Controllers
    {
        public class PartialController : Controller
        {
            public IActionResult AboutComponent() => PartialView();
     
            public IActionResult AppComponent() => PartialView();
     
            public IActionResult ContactComponent() => PartialView();
     
            public IActionResult IndexComponent() => PartialView();
        }
    }
    J'ai bien compris que ça indique que les requêtes type http://localhost:57738/about vont être considérées comme une demande de vue partielle.

    Pourriez-vous m'expliquer cette notation : public IActionResult IndexComponent() => PartialView();

    J'aimerais créer un contrôleur spécifique appellé ViewComponant (explications ici : https://docs.microsoft.com/en-us/asp...iew-components)

    Le souci, c'est que la classe ViewComponent n'est jamais invoquée.

    J'ai mi des points d'arrêt un peu partout et je ne comprends pas la mécanique.

    Quelqu'un pourrait m'expliquer ?

    Merci

  2. #2
    Membre habitué Avatar de Nadinette
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2012
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 264
    Points : 144
    Points
    144
    Par défaut J'ai un peu plus compris
    En fait je crois que le contrôleur partial est appelé par Angular 2 dans le app.routing.ts

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
     
    import { Routes, RouterModule } from '@angular/router';
     
    //import data from './scriptsg/commonData.js';
    import { IndexComponent } from './index.component';
    import { AboutComponent } from './about.component';
    import { ContactComponent } from './contact.component';
     
    const appRoutes: Routes = [
        { path: '', redirectTo: 'home', pathMatch: 'full' },
        { path: 'home', component: IndexComponent, data: { title: 'Home' } },
        { path: 'about', component: AboutComponent, data: { title: 'About' } },
        { path: 'contact', component: ContactComponent, data: { title: 'Contact' } }
    ];
     
    export const routing = RouterModule.forRoot(appRoutes);
     
    export const routedComponents = [IndexComponent, AboutComponent, ContactComponent];
    Pour chaque component ça utilise un ts spécifique :

    Ici le ts de about

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import { Component } from '@angular/core';
    
    @Component({
        selector: 'my-about',
        templateUrl: '/partial/aboutComponent'
    })
    
    export class AboutComponent {
    }
    partial c'est le contrôleur.

    et du coup :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public IActionResult AboutComponent() => PartialView();
    Voudrait dire, si j'ai bien compris : Lorsque AboutComponent est appellé, ça retrourne toujours une PartialView sans executer plus de code que çà.

    J'ai bon ?

    Merci

  3. #3
    Membre habitué Avatar de Nadinette
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2012
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 264
    Points : 144
    Points
    144
    Par défaut ai ai ai j'ai compris :)
    Bon en fait c'était bien ça...

    En suivant l'exemple des Components, j'ai créé un contrôleur spécifique au view component que j'ai simplement apellé avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <div>
        @await Component.InvokeAsync("MonComposant", new { page = "home"})
    </div>
    Et j'arrive bien à transmettre l'information "home" au MonComposantViewComponent comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            public IViewComponentResult Invoke(string page)
            {
                MyViewData.Page = page;
                return View(MyViewData);
            }
    C'est super puissant. Du coup au lieu d'avoir un contrôleur pour plusieurs vues, on peut avoir un contrôleur spécialisé pour chaque vue partielle évoluée que sont les Component.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/09/2016, 01h52
  2. Test unitaire ASP NET Core 1
    Par amalliap dans le forum ASP.NET
    Réponses: 2
    Dernier message: 25/08/2016, 00h57
  3. Microsoft annonce la disponibilité de la RC2 de .NET Core et ASP.NET Core
    Par Stéphane le calme dans le forum Framework .NET
    Réponses: 2
    Dernier message: 20/05/2016, 14h31
  4. Réponses: 1
    Dernier message: 10/05/2016, 09h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo