2
votes

Le nom Response n'existe pas dans le contexte actuel

Je crée une application Web Blazor avec .Net Core et j'essaie d'enregistrer le jeton dans le cookie. Cependant, j'obtiens l'erreur:

Le nom Response n'existe pas dans le contexte actuel

Dans tous les exemples que j'ai vus, les gens ne sont pas confrontés à ce problème. Que dois-je faire?

@functions {
    async Task Submit()
    {
        using (var client = new HttpClient())
        {
            User user = new User(state.user.Username, state.user.Password);
            var response = await client.PostAsJsonAsync("api/adimin/token", user);
            var token = await response.Content.ReadAsAsync<string>();

            var option = new CookieOptions();
            option.Expires = DateTime.Now.AddDays(1);
            Response.Cookies.Append(setting, token, option);
        }
    }
}


8 commentaires

Avez-vous copié-collé cette erreur? Ou est-ce une faute de frappe dans votre message? réponse! = réponse


désolé, ma faute, c'est arrivé à cause de la précipitation. Il doit y avoir une réponse.


Je ne pense pas que @functions existe en C #. Corrigez-moi si j'ai tort, s'il-vous plait.


c'est un cadre blazor


Votre exemple de code provient de l'application blazor ? Si tel est le cas, cela s'exécute dans le navigateur. Si vous devez définir un cookie, je suppose que vous devriez le faire côté serveur ...


la réponse n'existe que lorsque vous avez appelé depuis une page, pas depuis une tâche


Peut-être que l'utilisation de "HttpResponse" au lieu de "Response" fonctionnera. source: docs. microsoft.com/en-us/dotnet/api/…


Remarque: using (var client = new HttpClient ()) est une mauvaise idée dans toutes les éditions de .NET. Utilisez @inject .


3 Réponses :


1
votes

Essayez ceci.

en utilisant system.web

puis écrivez HttpContext.Current.Response


2 commentaires

maintenant il dit que 'HttpContext' ne contient pas de définition pour 'Current'


httpcontext est disponible dans .net framework pas dans .net core



1
votes

Je sais pourquoi Response n'existe pas dans le contexte actuel. En fait, il n'y a pas de contexte actuel ici. Donc pas de réponse ici aussi. Votre "contexte actuel" est ici un composant Blazor: "code derrière".

  1. Vous devez présenter tout le code pertinent dans votre question.
  2. Concentrez-vous sur un seul problème que vous rencontrez.

Permettez-moi de vous recommander de commencer à apprendre Blazor à partir de Microsoft doc, et lorsque vous ne pouvez pas résoudre vos problèmes, venez ici pour obtenir de l'aide. Commencez ici: https://docs.microsoft. com / fr-fr / aspnet / core / blazor /? view = aspnetcore-3.0

J'espère que cela vous aidera ...


0 commentaires

5
votes

Cela a bien fonctionné pour moi: -

Remplacez la réponse par HttpContext.Current.Response


0 commentaires