html b> contrôleur b> p> Lorsque vous cliquez sur le bouton J'ai besoin d'une manière ou d'une autre, lisez l'entrée de texte (numéro) de l'élément d'entrée et de la publier sur contrôleur. Comment cela peut il etre accompli ? p> p>
3 Réponses :
ou utiliser le formulaire avec le code de rasoir, c'est comme suit:
<div class="fc-option-more-input"> @using (Html.BeginForm("AddToCart", "Controller", new { id = 0 }, FormMethod.Post)) { <input type="number" id="itemCount" name="itemCount"/> <button type="submit"><span>Add</span></button> } </div>
Votre suggestion publie avec succès des données sur ADDTTOCART CODE> ACTION mais ne donnez pas de contrôle normal à la dernière ligne de code dans
addtocart code> est
redirectToaction ("index"); < / code> et il n'est pas exécuté
Donc, laissez l'utilisation du formulaire HTML à envoyer une demande
Pouvez-vous s'il vous plaît démontrer cela?
Édité dans ma réponse
@Model [i] .itemid posté?
Le dictionnaire des paramètres contient une entrée nulle pour le paramètre 'ID' de type non nullable 'System.int32' pour la méthode 'System.web.mvc.ActionResult Addtocart (int32, int32)' dans 'Onlinestore.Controls.shoppingCartController' . code>
routes.maproute (nom: "addtocart", URL: "{contrôleur} / {action} / {action} /", valeur par défaut: nouveau {contrôleur = "shoppingcart", action = "addtocart"}); code>
J'ai aussi ajouté 1 autre route vers la même action que: routtes.maproute (Nom: "Prix", URL: "{contrôleur} / {action} / {id} / {itemcount}", valeur par défaut: nouveau { contrôleur = "shoppingcart", action = "addtocart", id = "", élémentcount = ""}); code>
J'ai ajouté le paramètre d'identification dans ma réponse, j'espère que cela aidera
Le dictionnaire Paramètres contient une entrée NULL pour le paramètre 'itemCount' code>
Tapez quelque chose à votre étiquette d'entrée, ne le laissez pas nulle
Le bouton Ajouter est désactivé par défaut. C'est actif uniquement lorsque l'utilisateur tape un numéro dedans.
J'ai testé sur mon local et cela fonctionne complètement si la balise d'entrée a un nombre. Sinon, cela me donne "Le dictionnaire de paramètres contient une entrée nul pour le paramètre" itemCount "" comme vous le dites.
Veuillez supprimer le code Ajax car il ne l'a pas résolu. Le code HTML est la réponse. Merci
Pourquoi n'utilisez-vous pas de modèle pour soumettre vos formulaires avec le côté du contrôleur
public int Id {get;set;} public int ItemCount {get;set;}
@using (Html.BeginForm("AddToCart", "ShoppingCart", new { id = Model[i].ItemID}, FormMethod.Post)) { <div class="fc-option-more-input"> <input type="number" id="itemCount" name="itemCount"> <button type="submit" class="button button-add-custom-qty" disabled="disabled"> <span>Add</span> </button> } </div> This solved it for me.
Vous pouvez soit envelopper sous une forme, soit utiliser JavaScript et Ajax. En général, dans une page Web, ce sont les deux manières que vous pouvez envoyer des données au serveur. Ce sont toujours vos options
J'ai essayé à la fois le formulaire et utiliser JavaScript / Ajax mais en vain. S'il vous plaît voir la réponse donnée ci-dessous en pertinence pour votre commentaire. Merci