7
votes

Comment effectuer une opération de post-planche dans ASP.NET MVC?

Dans MVC, la page ne reçoit pas la publication comme dans ASP.NET, alors comment pouvons-nous effectuer des opérations de publication dans ASP.NET MVC2. pour ex Comment effectuer une action particulière lorsque quelqu'un choisit une boîte chech? Merci d'avance


2 commentaires

Je suggérerais de lire et de comprendre le motif MVC ( EN.WIKIPEDIA.ORG/WIKI/MODEL%E2%80%93VIEW%E2%80%93CONTROLLER ) et comment il est appliqué dans la mise en œuvre ASP.NET MVC ( ASP.NET/MVC ).


Pourquoi, oh pourquoi, est-ce que c'était voté? Pour quelqu'un de nouveau à MVC qui a passé tout leur temps sur Webforms, c'est une question assez valable à poser. Et si oui est l'endroit qui a la réponse à la question, alors c'est un bonus! =)


3 Réponses :


7
votes

Le mécanisme derrière le modèle de post-planche dans Webforms est appelé Publier HTTP. C'est ainsi que l'entrée utilisateur est communiquée au serveur.

Vous pouvez le faire manuellement. Joignez un gestionnaire JavaScript manuellement à la case "OnClick" événement et effectuez une demande postale à une URL. Là-bas, cette demande frappera une action du contrôleur où vous faites ce que vous voulez. Par exemple, mettez à jour le modèle (cocher / décochez la case) et renvoyez la même vue à partir de laquelle la poste est originée. La vue montrera maintenant l'état différent de la case à cocher.

Les mécanismes WebForms font à peu près la même chose, bien que ces choses soient abstraitées de votre part. Avec ASP.NET MVC, vous devrez apprendre à le faire par vous-même (ce qui est toujours une bonne chose).


1 commentaires

J'ai essayé d'envelopper chaque ligne avec html.beginform , puis a créé une case à cocher qui fait un post-plan. Mais lorsque l'action est atteinte, je reçois un modèle nouvellement créé et que les valeurs d'origine sont toutes perdues.



3
votes

Votre méthode d'action MVC sur votre contrôleur est un peu votre gestionnaire de publication.

Commencez par un exemple plus simple; Un simple poste de formulaire HTML: xxx

présent dans votre action de contrôleurs, vous pouvez obtenir les valeurs affichées et effectuer vos tâches. Une fois terminé, donnez le navigateur ce dont il a besoin: xxx

comme pour une case à cocher, c'est différent. Vous devez apprendre JavaScript (JQuery est la bibliothèque la plus utilisée à utiliser avec cela) et postez l'action en utilisant cela. Par exemple, vous pouvez faire un câblage à la case à cocher 'onclick ()' événement et effectuer un xhr - une opération JavaScript spécifique au navigateur, POST (vous pouvez utiliser jQuery pour cela aussi) sur votre contrôleur.

Vous devez donc commencer à réfléchir différemment des abstractions WebFormes et d'obtenir Impliqué avec HTML, HTTP et JavaScript.


0 commentaires

0
votes

Vous pouvez mettre cela dans une page de rasoir MVC:

if (Request.HttpMethod=="POST") {
}


0 commentaires