2011-01-26 2 views
0

User View Control n'a pas de code-behind. Alors, où/comment dois-je faire le events des éléments?Comment ajouter de la logique à un contrôle d'affichage utilisateur dans MVC 3?

Je veux comprendre une logique d'un contrôle dans MVC ...

+0

Je commence à apprendre asp.net mvc, je pourrais être trop attaché aux formulaires Web ... Je ne sais pas exactement ce que je devrais chercher pour apprendre à faire des contrôles sur MVC. Un lien vers une documentation à ce sujet serait bien ... – BrunoLM

Répondre

7

Il n'y a pas de contrôle de l'utilisateur dans MVC de sorte que vous ne devriez pas se soucier de la logique d'un contrôle. Il n'y a pas de PostBacks dans MVC. Il n'y a pas ViewState dans MVC. Il n'y a aucun événement dans MVC.

Il existe des modèles:

public class MyViewModel 
{ 
    public string Name { get; set; } 
} 

Contrôleurs manipulation du modèle:

public class HomeController: Controller 
{ 
    public ActionResult Index() 
    { 
     return View(new MyViewModel 
     { 
      Name = "John" 
     }); 
    } 
} 

et vues rendant les données contenues dans le modèle:

@model AppName.Models.MyViewModel 
<div>@Model.Name</div> 

Lorsque les vues doivent appeler quelque chose dans le contrôleur, ils n'utilisent plus aucun PostBacks ou événements: ils utilisent l'art HTML standard des éléments tels que des liens d'ancrage pour l'envoi de requêtes GET et des formulaires pour l'envoi de requêtes POST.

Exemple:

@Html.ActionLink("click me", "Foo", new { param = "123" }) 

générerait un lien d'ancrage pour l'action du contrôleur Foo passant param=123 comme paramètre de chaîne de requête:

<a href="/home/foo?param=123">click me</a> 

et ce qui suit:

@using (Html.BeginForm("Foo", "Home")) 
{ 
    @Html.TextBoxFor(x => x.Name) 
    <input type="submit" value="OK"> 
} 

générerait un formulaire HTML vous permettant de POST à ​​l'action du contrôleur Foo certains informations:

<form action="/Home/Foo" method="post"> 
    <input type="text" id="Name" name="Name" value="" /> 
    <input type="submit" value="OK" /> 
</form> 

Ressources utiles avec de nombreux tutoriels et vidéos pour apprendre ASP.NET MVC:

1

Personnellement id faire la logique dans le contrôleur ou ont le contrôleur appelle une classe de logique métier qui fait le travail pour vous. le contrôleur retournera alors la vue. Passez le modèle dans votre vue à partir du contrôleur, puis passez le modèle de la vue dans la vue partielle (équivalent MVC d'un contrôle utilisateur)

cela signifie qu'il n'y a pas de logique dans la vue/vue partielle et signifiera que vous pouvez rendre le modèle d'une manière très propre

est-ce logique?

0

Vous semblez être trop attaché au cycle de vie de la page WebForms.

La méthodologie de programmation sur la surface pour MVC est fondamentalement différente de WebForms. C'est plus proche de Ruby On Rails.

Quelques ressources pour vous aider à apprendre MVC sont:

Official MVC Web site

Scott Hanselman's NerdDinner project

0

je vais recommander également le projet NerdDinner de Scott Hanselman. C'est un excellent projet pour apprendre le framework ASP.NET MVC.

également lu et relu la réponse de Darin Dimitrov .. il contient les bases de la façon dont les données sont traitées dans MVC

Questions connexes