0
votes

Binding de base .NET

J'utilise .NET CORE 2.1. Il s'agit de la fonction qui prend la valeur du nom d'entrée de l'utilisateur et est censée le transmettre au contrôleur - Créer une fonction lorsque le "bouton Enregistrer" est cliqué sur "

public ActionResult Create([Bind(Include = "ID,BoxName")] Box Box)


0 commentaires

3 Réponses :


0
votes

Edit: Ceci est partiellement faux bien que vous devriez le faire pour plus de clarté. S'il n'y a qu'une seule action et que le verbe n'est pas spécifié dans votre contrôleur, l'action est effectuée de toute façon, quel que soit son poste ou obtenu.

Vous utilisez un verbe post-verbe dans votre Ajax, par défaut, toutes les actions dans le contrôleur reçoivent . Ajoutez l'attribut [httppost] au-dessus de votre action du contrôleur. xxx


1 commentaires

Il est déjà ajouté mais je ne l'ai pas inclus dans ma question. Le débogueur atteint la fonction mais donne un paramètre null.



0
votes

Retirez le type de contenu et n'utilisez pas stringify. Donc, votre appel AJAX devient

    $.ajax({
    type: "POST",
    url: '/Box/Create', 
    datatype: 'json',
    data: { ID: "@Model.Id", BoxName: boxName },
      success: function (response) {
          alert("Box created");
      }


0 commentaires

0
votes

Vous devez créer une liaison du corps de la requête: IE:

[HttpPost]
Public ActionResult Create([FromBody] CreateBinding binding)
{
 var id = binding.ID;
 var name = binding.BoxName;
....
}


1 commentaires

Ce n'est pas nécessaire.