2 votes

ASP.NET C# MVC Passer des valeurs du contrôleur à cshtml

Je suis novice dans l'utilisation des pages Razor, j'ai donc dans le répertoire du modèle une classe avec les valeurs suivantes :

public int Id { set; get; }
public string CustomerCode { set; get; }
public double Amount { set; get; }

Dans mon contrôleur (fichier .cs), j'ai ce qui suit :

 public ActionResult Index()
 {
     Customer objCustomer = new Customer();
     objCustomer.Id = 1001;
     objCustomer.CustomerCode = "C001";
     objCustomer.Amount = 900.78;
     return View();
 }

...maintenant, je veux afficher les valeurs via ma page Index.cshtml, mais quand je lance l'application, je n'obtiens que le code que j'ai tapé au lieu des valeurs :

...c'est ainsi que la page .cshtml est configurée :

@model Mvccustomer.Models.Customer

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>
<div>
    The customer id is : <%= Model.Id %> <br />
    The customer id is : <%= Model.CustomerCode %> <br />
    The customer id is : <%= Model.Amount %> <br />
</div> 

...ma question est : comment faire pour que les valeurs s'affichent ? Merci d'avance pour toute aide.

2voto

Matt Griffiths Points 659

Vous devez utiliser le syntaxe du rasoir .

En reprenant votre exemple :

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>
<div>
    The customer id is : @Model.Id <br />
    The customer id is : @Model.CustomerCode <br />
    The customer id is : @Model.Amount <br />
</div>

1voto

Travis J Points 28588

Vous devez envoyer la valeur à la vue dans le retour

return View(objCustomer);

Cela permettra au modèle de liaison de se mettre en place, en remplissant les valeurs de votre @model avec les valeurs de l'objet ActionResult.

Si vous utilisez un rasoir au lieu du <%= vous devez également les remplacer par la syntaxe @ syntaxe du rasoir comme indiqué dans Réponse de Matt Griffiths également.

-1voto

user9405863 Points 1488

Une solution complète à votre problème :

Action du contrôleur : Vous devez envoyer un objet à la vue à partir d'une action du contrôleur.

 public ActionResult Index()
     {
         Customer objCustomer = new Customer();
         objCustomer.Id = 1001;
         objCustomer.CustomerCode = "C001";
         objCustomer.Amount = 900.78;
         return View(objCustomer);
     }

Vue : Vous devez utiliser @ pour la syntaxe Razor

 @model Mvccustomer.Models.Customer

    @{
        ViewBag.Title = "Index";
    }

    <h2>Index</h2>
    <div>
        The customer id is : @Model.Id <br />
        The customer id is : @Model.CustomerCode <br />
        The customer id is : @Model.Amount <br />
    </div>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X