J'essaie de passer une valeur de modèle Quelle est la meilleure façon de le faire? J'ai essayé d'utiliser p> mais je reçois "référence null objet référence" exception tout le temps. P> Contrôleur de destination: P> < Pré> xxx pré> p> modèle.codigopedido code> à 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:
3 Réponses :
Ajouter @ html.hcidfor (modèle => modèle.codigopedido) code> à l'intérieur du formulaire. Vous devriez être capable d'accéder à cela dans votre contrôleur. Laissez votre INSERIRER_PELDOO CODE> Action FAIRE QUOI fonctionne et terminez par redirectToaction (["Nom d'action", arguments); Code>. P>.
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 code> comme votre troisième argument.
le modèle n'est pas reconnu dans l'action :(
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)
{
}
Cela fonctionne vraiment bien de rediriger à mon action dans un autre contrôleur, mais CODIGOPEDIDOVIEWMODEL CODIGOPEDIDO code> 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) {} code> 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 code>? Remplacez action code> avec le nom de votre action, contrôleur code> 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"} code> 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 * /)) CODE> 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.
Le concept est comme @f. Sensna échantillonnée. P>
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. p>
Veuillez indiquer comment vos contrôleurs pour cette vue sont configurés.
Je viens de modifier le poteau, merci!