2013-04-16 3 views
0

Je suis nouveau à mvc. J'ai fait un bon développement avec Winforms et maintenant je travaille sur un projet MVC. Dans notre projet winforms, nous avons des contrôles standards tels qu'un contrôle de liste déroulante qui montrera tous les employés. Ce contrôle sait comment obtenir les employés et les afficher. Il expose une propriété qui donne l'employé sélectionné. Les formulaires ont juste besoin de mettre ce contrôle dessus et de l'utiliser. Maintenant, ma question est de savoir comment puis-je réaliser cela dans aps.net MVC (dans les vues). J'ai essayé des vues partielles mais ensuite comment puis-je exposer la valeur sélectionnée à la vue parentcontrôle partiel ASP.NET MVC

+1

Essayer de faire les choses de la même manière que Winforms va être frustrant. Le web est une bête très différente. Essayez d'embrasser les différences plutôt que d'essayer de faire fonctionner MVC comme vous en avez l'habitude. Regardez les vidéos sur la droite de la page asp.net/mvc. –

Répondre

1

Dans MVC, Views ne doit pas contenir de logique autre que la logique d'affichage.

Le Controller devrait être celui qui « sait comment obtenir les employés » ou créer un employé Model qui passera alors à un View qui sait comment afficher un employé, dans la plupart des cas, il serait strictement typé View de type Employee.

1

Je pense que c'est ce que vous essayez d'atteindre:

Say, dans votre modèle, vous avez un employé (ou une liste de, que ce soit ou):

Employee Employee { get; set; } 

Ainsi, votre principale Voir devrait avoir ceci:

@Html.DisplayFor(Model => Model.Employee); 

Mais, comment TEMPLATE-je, vous demandez-vous? Vous devriez prendre un peu de recul à ce stade et envisager de créer un nouveau ViewModel, un EmployeeViewModel (cela, dans votre esprit, devrait être votre "vue partielle").

Alors maintenant, vous aurez:

EmployeeViewModel Employee { get; set; } 

Maintenant, créez un dossier dans vos vues/appelés à partager DisplayTemplates et créer EmployeeViewModel.cshtml. Pour être clair, vous aurez maintenant/Views/Shared/DisplayTemplates/EmployeeViewModel.cshtml.

La première ligne de ce qui devrait lire:

@model YourNamespace.EmployeeViewModel 

Et maintenant, vous pouvez simplement utiliser dans cette vue:

@Html.LabelFor(model => model.EmployeeName) // or whatever properties you have 

Cela devrait être suffisant pour vous aider à démarrer.

0

PartialView vous convient. donc chercher du contenu avec le mot clé 'PartialView'

Questions connexes