0
votes

Comment rediriger dans un identifiant aléatoire d'un autre contrôleur?

Mon projet est un site de révision sur les films, les séries et les acteurs. J'ai déjà des films, des séries et des acteurs effectués (index, détails, éditez et supprimez), avec les contrôleurs appropriés et tout. Mais maintenant j'essaie de créer des boutons "générer des films aléatoires" et de "générer des boutons de série aléatoire" dans la vue d'accueil, de sorte que lorsque je clique dans ce bouton, il me redirige dans un film / une série aléatoire.

donc l'URL devrait aller de home / index code> à films / détails / "ID aléatoire" code> (identique pour la série). P>

Je n'ai rien à la maison Contrôleur, sauf la vue de retour () dans la classe d'index. P>

Je voudrais donc savoir, que dois-je mettre dans le contrôleur et dans le bouton ActionLink / Bouton pour la rediriger vers le film aléatoire. p>

Edit: p>

Modèles: Modèle de film: p>

<div>
    <hr />
    <dl class="dl-horizontal">
        <dt>
            <p>Movie Name: </p>
            <p> </p>


        </dt>

        <dd>
            @Html.DisplayFor(model => model.MovieName)
        </dd>

        <dt>
            <p>Movie Description: </p>
            <p> </p>


        </dt>

        <dd>
            @Html.DisplayFor(model => model.MovieDescription)
        </dd>

        <dt>
            <p>Category: </p>
            <p> </p>


        </dt>

        <dd>
            @Html.DisplayFor(model => model.MovieCategory)
        </dd>

        <dt>
            <p>Year of the movie: </p>
            <p> </p>


        </dt>

        <dd>
            @Html.DisplayFor(model => model.MovieYear)
        </dd>

    </dl>
</div>
<p>
    @Html.ActionLink("Edit", "Edit", new { id = Model.MovieID }) |
    @Html.ActionLink("Back to List", "Index")
</p>


2 commentaires

Pouvez-vous fournir plus de code de rasoir? Sans cela, nous ne savons pas comment vous pouvez obtenir l'identifiant qui vous manque.


@Cibotariuflorin je vais éditer la question


4 Réponses :


2
votes

Vous devez ajouter '/' dans URL

 @Html.ActionLink("Something", "/Movies/Details")


5 commentaires

Il génère cette URL: home / films / détails . Je veux "quitter" le contrôleur domestique et aller au cinémaController


Ensuite, vous devez d'abord aller sur la racine. @ Html.actionLink ("quelque chose", "~ / films / détails"), Ajout tilde


Il redirige vers cette URL: http: // localhost: **** / Accueil / ~ / Films / Détails


Pourriez-vous s'il vous plaît partagez votre routageConfig.cs?


Bien sûr, je vais l'ajouter à la question. c'est celui qui vient avec mvc



0
votes

Si vous avez un autre contrôleur nommé FilmsController Je vous recommande d'écrire votre ancre comme

@ html.actionLink ("ActionLinkname", "Détails", "Films", Nouveau {id = item.movieid});

Cela signifie que vous souhaitez générer un lien vers une méthode nommée Détails Intérieur FilmsController qui accepte un paramètre nommé ID . . .


4 commentaires

D'accord, j'ai essayé votre méthode, mais je n'ai encore rien dans mon contrôleur, alors je ne sais donc pas si cela fonctionnera. Je mettrais du code dans le contrôleur, mais je dois savoir comment le faire pour les séries et les films en même temps (que je ne sais pas encore).


Pouvez-vous nous donner plus de détails sur le problème? Voulez-vous créer un lien d'action vers un contrôleur qui n'existe pas pour le moment?


Pouvez-vous nous envoyer votre série de classes et votre film, je suppose que le problème que vous ne savez pas de générer l'identifiant aléatoire, puis de générer la vue nécessaire, je me trompe?


@matt sa jolie semblable à ce que vous avez dit. Je vais éditer la question à une question plus détaillée.



0
votes

J'ai mis à jour votre code, essayez ceci: xxx

Ceci permettra également à votre lien ressemble à un bouton réel.


0 commentaires

1
votes

Alors,

Tout d'abord, vous avez besoin de votre page d'accueil un lien vers le contrôleur qui générera votre page aléatoire, cette ligne a été envoyée par Saqib Abbas P> xxx pré>

Suivant sur votre cinémaController p>

Créer une méthode P>

public ActionResult Details()
{
    // First we'll determine if we return a movie or a serie 
    Random movieOrSerie = new Random();
    int movieOrSerie = random1.Next(1, 2);

    if(movieOrSerie == 1) // if 1 we'll search for a random Movie
    {
        var movies = //get your list of movies here
        Random movieIndex = new Random();
        int movieIndex = random1.Next(0, movies.Count);
        var movie = movies.ElementAt(movieIndex);
    }
    else // same for series
    {
        var series = //get your list of series here
        Random serieIndex = new Random();
        int serieIndex = random1.Next(0, series.Count);
        var serie = series.ElementAt(serieIndex);
    }
    // then you have to put the serie or movie in your viewModel 
    return View("ViewName", ViewModel)
}


4 commentaires

Je n'ai pas de classe spécialement pour le film et la série. J'ai un contrôleur complet pour chacun d'eux. Voulez-vous que je pleure une partie spécifiée du contrôleur ici? (Je vais mettre à jour, avec ce que je sais que je peux vous donner maintenant).


Donc, des films et des séries sont stockés dans la même table? Mais vous avez 2 contrôleurs? Pourquoi ne pas utiliser le même contrôleur et la même page?


Oh, attends, je suis tellement confus. Nah, j'ai 2 tables différentes. Les modèles sont dans la question


Comme, il n'y a aucun moyen de simplement rediriger vers le contrôleur de films, les détails, puis un identifiant aléatoire de la table?