Le code actuel de l'une des vues de mon projet est grand et monolithique et je veux juste l'organiser. Est-il juste de placer des méthodes dans ma vue ASP.NET MVC?Est-il applicable pour placer des méthodes dans des vues ASP.NET MVC?
Répondre
Je dirais certainement pas. Le but de MVC est de séparer les préoccupations, à savoir Model - View - Controller. Dans votre cas, vous mélangez la logique Model/Controller avec votre View.
Si vous avez besoin de passer un contenu complexe à votre vue, vous devez créer des classes personnalisées ViewData
, les remplir dans votre contrôleur et les transmettre dans votre vue. Si vos méthodes sont plus liées à la génération du balisage View, vous devriez envisager de le diviser en vues partielles ou comme déjà suggéré en utilisant des méthodes d'extension d'aide.
C'est possible mais si vous avez besoin de méthodes dans une vue, vous devriez peut-être envisager d'étendre l'objet Html avec une méthode d'extension, puis utiliser ces méthodes depuis l'intérieur de la vue. J'aime séparer mes extensions par fonctionnalité pour garder la vue lisible. Par exemple:
public static MySpecialDateHelper SpecialDateHelper(this HtmlHelper helper)
{
return new MySpecialDateHelper(helper);
}
public class MySpecialDateHelper
{
// Fields
private HtmlHelper m_helper;
private StringBuilder m_sb = new StringBuilder();
// Methods
internal MySpecialDateHelper(HtmlHelper helper)
{
this.m_helper = helper;
}
// Print date prettily
public public string PrettyDate(datetime target)
{
// format however
return string.format("pretty {0}", target.ToString());
}
// Print date prettily
public public string PrettyDateInATextbox(datetime target)
{
return m_helper.TextBox("prettyid",PrettyDate(target));
}
// etc...
}
Alors à votre avis, il vous suffit de faire référence à l'extension que vous venez de créer
<%= Html.SpecialDateHelper.PrettyDateInATextbox(Now); %>
Bien sûr, votre séparation des méthodes dans les extensions peuvent varier, vous pouvez également étendre la Objet HtmlHelper avec les méthodes directement, mais je préfère cette méthode
No.
Move it le contrôleur, le cas échéant introduire des modèles de vue. Après cela, définissez vos propres helpers Html, en considérant que ceux-ci devraient être pour des trucs comme HTML, pas pour n'importe quelle logique.
Vous pourriez avoir quelque chose dans une vue qui lui est spécifique, et il n'est simplement pas possible qu'un morceau de code fasse quoi que ce soit en dehors de cela. Mais même alors, vous pouvez simplement le définir dans une aide, tant que le nom est très clair sur ce qu'il fait, vous êtes mieux que de le mettre dans la vue. Vous pouvez mettre à l'essai des aides test, il y a donc un net avantage à le faire.
- 1. ASP.NET MVC Globalisation des Vues
- 2. Utilisation des vues partielles dans ASP.NET MVC
- 3. des espaces dans les vues asp.net mvc
- 4. ASP.NET MVC meilleure approche pour fournir des données aux vues
- 5. Comment placer les contrôleurs et les vues associées dans des dossiers distincts dans ASP.NET MVC
- 6. ASP.NET MVC Compiler des vues dans des assemblages distincts
- 7. Retour des données des contrôleurs aux vues dans asp.net mvc
- 8. validation ASP.NET MVC et des vues
- 9. asp.net mvc avec des paramètres facultatifs et des vues partielles
- 10. asp.net mvc rechercher et éditer des vues
- 11. Dans ASP.Net MVC, utilise des méthodes statiques pour rechercher des objets mis en cache sur les mauvaises vues?
- 12. Passage des informations contextuelles aux vues dans ASP.NET MVC
- 13. Rendu des vues partielles (fenêtres modales) dans asp.net MVC
- 14. comment j'écris des méthodes d'action pour des vues partielles?
- 15. Comment créer des vues dynamiques dans asp.net mvc?
- 16. Vues complexes ASP.NET MVC
- 17. vues partielles dans ASP.NET MVC?
- 18. Méthodes d'action ambiguës - ASP.net MVC
- 19. passer des arguments aux méthodes d'action dans ASP.NET MVC
- 20. Méthodes d'accès ou des propriétés de html dans asp.net mvc
- 21. ASP.NET MVC JQuery - algoritme flexible pour l'appel des méthodes mvc asp.net
- 22. Où placer des images/CSS dans l'application printemps-mvc?
- 23. ASP.Net MVC Stongly Vues typées
- 24. Conserver les données des vues lors de la navigation dans plusieurs vues dans l'application ASP.NET MVC
- 25. méthodes d'action ASP.NET MVC
- 26. Mise en cache des vues partielles en asp.net MVC
- 27. Des pratiques correctes pour savoir où placer des images et des fichiers statiques dans une application ASP.NET MVC?
- 28. Le meilleur endroit pour placer des objets de domaine dans une application ASP.NET MVC?
- 29. Données partagées dans les vues ASP.NET MVC
- 30. asp.net mvc vues génériques/personnalisés
Je pense que c'est définitivement NON. Mais je suggérerais que vous nous donniez un exemple de type de méthodes que vous écrivez, et nous pourrons ensuite vous donner quelques alternatives. –