-1
votes

Comment passer la valeur du modèle d'une vue sur un contrôleur lorsque vous cliquez sur le bouton de ASP.NET MVC

J'essaie de passer une valeur de modèle modèle.codigopedido à partir de la vue ci-dessous sur un contrôleur lorsque vous cliquez sur le bouton également en même temps, je souhaite rediriger l'utilisateur sur le même contrôleur que j'essaie de passer cette valeur: xxx

Quelle est la meilleure façon de le faire? J'ai essayé d'utiliser xxx

mais je reçois "référence null objet référence" exception tout le temps.

Contrôleur de destination: < Pré> xxx


2 commentaires

Veuillez indiquer comment vos contrôleurs pour cette vue sont configurés.


Je viens de modifier le poteau, merci!


3 Réponses :


-1
votes

Ajouter @ html.hcidfor (modèle => modèle.codigopedido) à l'intérieur du formulaire. Vous devriez être capable d'accéder à cela dans votre contrôleur. Laissez votre INSERIRER_PELDOO Action FAIRE QUOI fonctionne et terminez par redirectToaction (["Nom d'action", arguments); . .


3 commentaires

Cette redirection peut être utile, im essayant de transmettre la valeur du modèle de vue par surcharge: Nom d'action de chaîne, contrôleur de chaîne, objectoire de chaîne, mais j'ai du mal à passer le troisième argument: "" RedirectToaction de retour ("Mostrar_Status", "StatutPeDido", nouveau = {codigopedido = modèle.codigopedido}); `` ``


Essayez juste modèle.codigopedido comme votre troisième argument.


le modèle n'est pas reconnu dans l'action :(



1
votes

Donc, je pense que la meilleure pratique est de définir le contrôleur action code> et dans votre @html code> méthode de l'assistance comme ceci:

public ActionResult Mostrar_Status(CodigoPedidoViewModel model)
{
}


7 commentaires

Cela fonctionne vraiment bien de rediriger à mon action dans un autre contrôleur, mais CODIGOPEDIDOVIEWMODEL CODIGOPEDIDO renvoie NULL, donc je ne reçois aucun résultat de ma méthode. Lorsque j'essaie de mettre modèle.codigopedido dans @ html.beginform (action, contrôleur, formestéthod.post, htmlattributes) {} comme quatrième argument, je reçois une exception null. Qu'est-ce que je rate? Thx pour l'aide!


Vous mettez-vous cette ligne exacte de code dans votre fichier .cshtml ? Remplacez action avec le nom de votre action, contrôleur avec le nom de votre contrôleur, et n'importe quel HTMLATTRIBUT que vous avez peut-être installé dans le quatrième argument, comme nouveau {id = "Pedidoform"} ou quelque chose.


Oui, mais j'ai déjà cette ligne de code dans mon .cshtml comme vous pouvez le constater, devrais-je mettre deux fois?


@Lucena Votre contrôleur a également besoin du mode CODIGOPEDIDOVIEWMODELL comme paramètre et non la chaîne que vous avez actuellement


J'ai déjà fait ça aussi, je suis à court d'idées de quoi faire. @Unuant (html.beginform ("mostrar_status", "statutPedido", / * nouveau {PEDIDO = MODER.CODIGOPEDIDO}, * / FORMMETHOD.POST / *, NULL * /)) Chaque fois que j'essaie de Passez une exception de référence NULLED I GOTÉ NULLE EXPOSITION DE RÉFÉRENCE POUR MODERNE.CODIGOPEDIDO ET Lorsque je définis uniquement des arguments d'action, de contrôleur et de forméthod, je ne peux pas recevoir la valeur que j'ai placée dans le bouton d'entrée de mon autre contrôleur, même si j'utilise CODIGOPEDIDOVIEWMODEL CODIGOPEDOO < / Code> À l'intérieur de l'action, il retourne toujours NULL, il semble que l'éditeur n'est pas de valeur pour moi :(


La chose étrange est que je peux voir la valeur de modèle.codigopedido sur ma barre de navigation, la même valeur que j'ai placée dans la zone de texte


J'ai fait cela, je change CODIGOPEDIDOVIEWMODEL EN STRING et cela a fonctionné, je suis un peu confus, mais il fonctionne maintenant, de toute façon THX pour votre soutien, que @ html.beginform () a été vraiment utile.



0
votes

Le concept est comme @f. Sensna échantillonnée.

Vous obtenez un modèle dans une vue, en concevant la vue avec les propriétés de l'aide et du modèle de Razor HTML, vous allez soumettre l'objet de modèle au contrôleur. Si vous ne spécifiez pas le nom d'action et de contrôleur dans la fonction de formulaire, il sera soumis à la même action de son emplacement, mais dans un site httppory.


0 commentaires