2012-10-01 24 views
27

Estoy intentando llamar a un método en Json.Encode(...) MVC 4 y estoy recibiendo un error: The name 'Json' does not exist in the current context.MVC referencia 4 ensamblaje falta de Json.Encode

He intentado añadir System.Runtime.Serialization espacio de nombres, que tiene Json clase, pero esta instancia particular de la clase Json no tiene el método Encode.

¿Qué ensamblaje me falta aquí?

Aquí está mi código exacto:

{ url: '@Url.Action("DeleteDefinitionRule")', editData: 
    { companyCode: 'LO', definitionID:@Html.Raw(Json.Encode(Model.DefinitionID)) } } 
+0

¿Agregaste tu "uso"? –

+0

Esa es la pregunta. Sé que se supone que debo usar algo, pero no sé qué. No puedo encontrarlo para salvar mi vida usando Google. – Scottie

+0

Parece que no hay nada como Json.Encode –

Respuesta

68
  1. Las referencias en soluciones explorador> clic derecho> Agregar referencia
  2. Asambleas Bajo> Marco, búsqueda "System.Web.Helpers" doble clic
  3. System.Web.Helpers versión 2.0.0.0 y haga clic en OK . Busque el
  4. System.Web.Helpers que acaba de agregar> haga clic en él> Propiedades.
  5. Cambio "Copia Local" de falsa, a la verdadera

Y ahora @ Json.Encode debería funcionar.

actualización

enter image description here

+0

Thanks man! Estaba buscando alto y bajo para esta solución. – ckng

+1

Así que estoy aquí una y otra vez encontrando útil esta respuesta. Tanques –

+1

Además, si se encuentra con este problema al usar MVC 5 RC (probablemente lo mismo ocurrirá con MVC 5 RTM), este paquete de ensamblaje ha sido rebautizado como Microsoft.AspNet.WebHelpers según las instrucciones aquí http: //www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web-api-2 y usted puede obténgalo a través de Nuget ACTUALIZACIÓN En realidad, este paquete falta por el momento, pero debería reaparecer pronto, supongo. – mare

0

Al parecer, si se crea un nuevo proyecto Web vacío, y tratar de mover todo en las zonas, que elimina la biblioteca ayudantes. Pero si lo creas como un proyecto de Internet, permanecen. Creé un nuevo proyecto como un proyecto de Internet y todo funciona ahora.

+3

Eso no es lo suficientemente bueno para yo ^^. Realmente no quiero mover todo en un nuevo proyecto. – BjarkeCK

+0

Tuve que agregar una ruta de sugerencia: .. \ packages \ Microsoft.AspNet.WebPages.2.0.20710.0 \ lib \ net40 \ System.Web.Helpers.dll tofutim

4

Para que quede claro, incluso después de agregar la referencia correcta a su proyecto, usted todavía tiene que añadir esta línea en la parte superior de la página de la maquinilla de afeitar:

@using System.Web.Helpers;