L'appel de la non-Action des méthodes de vue MVC .NET
Je veux appeler un non-méthode d'action en vue. Puis-je le faire? En d'autres termes, il existe une méthode dans mon contrôleur qui retourne une chaîne de caractères. Je veux appeler cette méthode à mon avis.cshtml) et de l'afficher dans la vue. Tout ce que je pouvais voir, les méthodes doivent retourner ActionResult. Mais dans mon cas, je n'ai pas besoin d'une vue retourné juste une chaîne de caractères.
- Entendez-vous un appel Ajax, ou un appel au chargement de la page?
Vous devez vous connecter pour publier un commentaire.
La meilleure façon (et MVC convention façon) pour ce faire est d'utiliser un
ViewModel
. Exemple rapide:Modèle
Contrôleur
Vue
Espère que ça aide!
Vous pouvez le faire si vous le souhaitez.
Bien que je n'appellerais pas cela de la bonne pratique.
Vous pouvez appeler toutes les méthodes que vous souhaitez sur le point de vue, mais vous devriez essayer de vous garder vues aussi propre que possible et de faire le minimum de logique dont vous avez besoin.
Dans votre contrôleur, vous pourriez avoir cette méthode ci-dessous.
Et à votre avis, vous pouvez l'utiliser comme ci-dessous.
Vous pouvez retourner Vue/vue Partielle, à d'autres points de vue en appelant Html.Action() ou Html.RenderAction()
Je n'ai personnellement jamais eu besoin de renvoyer une valeur à partir d'une méthode qui n'était pas une classe de base de
ActionResult
, comme il y a bien quelques.Cela sonne comme un bon cas d'utilisation pour un Helper personnalisé.
http://www.asp.net/mvc/tutorials/older-versions/views/creating-custom-html-helpers-cs
Vous pouvez retourner un objet Json à partir du contrôleur avec quelque chose comme ceci:
Et ensuite vous pouvez faire un appel ajax à partir de votre .cshtml comme ceci:
De l'appel de méthodes à partir de votre point de Vue qui se trouvent dans votre Contrôleur n'est pas recommandé que vous êtes en rupture le modèle MVC!