web-dev-qa-db-fra.com

référence d'assemblage mvc 4 manquante pour Json.Encode

J'essaie d'appeler une méthode Json.Encode(...) dans MVC 4 et j'obtiens une erreur: The name 'Json' does not exist in the current context.

J'ai essayé d'ajouter System.Runtime.Serialization namespace, qui a la classe Json, mais cette instance particulière de la classe Json n'a pas de méthode Encode.

Quelle Assemblée me manque ici?

Voici mon code exact:

{ url: '@Url.Action("DeleteDefinitionRule")', editData: 
    { companyCode: 'LO', definitionID:@Html.Raw(Json.Encode(Model.DefinitionID)) } }
29
Scottie
  1. Références dans l'Explorateur de solutions> clic droit> Ajouter une référence
  2. Sous Assemblys> Framework, recherchez "System.Web.Helpers" Double-cliquez
  3. System.Web.Helpers version 2.0.0.0 et cliquez sur ok. Trouvez le
  4. System.Web.Helpers que vous venez d'ajouter> cliquez dessus avec le bouton droit> propriétés.
  5. Remplacez "Copier local" par faux par vrai

Et maintenant, @ Json.Encode devrait fonctionner.

Mise à jour

enter image description here

69
BjarkeCK

Pour être clair, même après avoir ajouté la référence correcte à votre projet, vous devez toujours ajouter cette ligne en haut de votre page Razor:

@using System.Web.Helpers;
5
MattSlay

Apparemment, si vous créez un nouveau projet Web vide et essayez de tout déplacer dans les zones, cela supprime la bibliothèque Helpers. Mais si vous le créez en tant que projet Internet, ils restent. J'ai créé un nouveau projet en tant que projet Internet et tout fonctionne maintenant.

0
Scottie