0
votes

Comment transmettre une chaîne JavaScript sur le contrôleur?

Je travaille actuellement sur un projet mais j'ai été coincé ici pendant une journée maintenant. En résumé, la question que je ne dépend que de la start-papier forte> de mon projet.

J'ai parcouru à travers d'innombrables guides, même sur Stackoverflow, mais en vain. P>


HTML STRAND> P>

namespace Qualitätskontrolle.Controllers
{
    public class HomeController : Controller
    {
        [HttpGet]
        public IActionResult StartPage(string Code)
        {
            Debug.WriteLine(Code);
            return View();
}
}
}


7 commentaires

Que dit l'erreur JS?


C'est juste cette ligne de code mais je n'ai aucune idée de ce qui pourrait être erroné erreur html: fonction () {alerte ("erreur" + données); }, Je pense que cela ne peut que prendre la valeur StringDigits.


Essayez d'ajouter des données dans la fonction Erreur: fonction (données) {alerte ("erreur" + données); }


Ne alerte pas erreurs. Utilisez console.log à la place si vous souhaitez voir quelques détails sur vos erreurs.


J'ai fait et maintenant il dit erreur [objet d'objet] comme prévu


@Cerbrus Je supprimerai les alertes dès qu'il commence à travailler, je suis maintenant que les alertes sont vraiment gênantes.


@Klausk: alerte est horrible pour voir quel objet JS contient. Il ne peut que montrer du texte. Si vous souhaitez enregistrer un objet, utilisez console.log .


4 Réponses :


3
votes

Il y a plusieurs problèmes ici.

  • Vous retournez Voir à un appel AJAX. Vous devriez probablement RETENIR JSON ("Contenu", JSONREQuestbehavior.allandget) .
  • Vous définissez DataType: json.stringify (stringdigits) . Vous pouvez supprimer ce bit
  • Vous définissez des données : "chaîne" . Il devrait être Data: {code: stringdigits} , car startpage s'attend à ce que le paramètre nommé code comme entrée.
  • Vous redirigez juste avant l'AJAX window.location.href = '/ home / kontrolle' (pas sûr pourquoi)
  • Le gestionnaire d'erreur utilise des données variable qui n'est pas définie dans ce contexte. Contrairement au gestionnaire de réussite, celui de l'erreur ne reçoit pas data comme entrée. Voici un exemple de manutention correcte des erreurs: XXX

    Il existe plusieurs exemples simples ici: ASP.NET MVC Controller Actions qui renvoient JSON ou HTML partiel xxx

    en JS: xxx


4 commentaires

Si vous copiez simplement la chose à propos de la manipulation des erreurs de ma réponse ci-dessous, je supprimerais le mien, car nous passons des choses similaires


@Andrei vous semble beaucoup plus détaillé. Vous devriez le garder


Je les ai fusionnés de toute façon, il a plus de sens d'avoir une réponse complète que deux partielles


@Adiga J'ai maintenant essayé votre manutention d'erreur et cela a dit: Erreur: 200: PARSERError REMARQUE: Les chiffres de chaîne ont déjà le numéro correct.



2
votes

De votre code, j'ai constaté que vous avez fourni StringDigits forts> dans DataType au lieu de la propriété de données. Peut-être que cela a causé le problème. Donc, veuillez corriger ce code comme comme suit,

dataType: "string",
data: JSON.stringify(stringDigits)


1 commentaires

Je l'ai fait mais pour maintenant profiter tristement.



0
votes

Alors, j'ai maintenant édité la question de départ sauf l'erreur. Je connais la réponse:

"Essayez de supprimer le contenu de contenu et du type de données de paramètres Ajax et de les laisser être identifiés automatiquement" ~ catalin p>

Ces deux doivent être supprimés: P>

contentType:"StartPage/json",


0 commentaires

1
votes

Vous pouvez utiliser l'appel Ajax ou utiliser un champ masqué d'entrée remplissant de vos données. et vous pouvez appeler Action dans le contrôleur Utiliser URL et transmettre des données Utilisez la chaîne de requête Exemple http://www.domin.com/controller/action?data=1234567 Dans Java Script peut appeler l'URL: fenêtre.location = URL;


0 commentaires