En viewmodel objeto, a continuación es el de la propiedad:

  public IList<CollegeInformationDTO> CollegeInformationlist { get; set; }

A la VISTA, javascript es como sigue:

   var obj = JSON.stringify('@Model.CollegeInformationlist');
   alert(obj[1].State);  //NOT WORKING, giving string char

      $.each('@Model.CollegeInformationlist', function (i, item) {
    var obj = JSON.stringify(item);
    var r = $.parseJSON(obj);
    alert(r.State);    //just giving undefined.
    });

Por favor la guía de aquí, ¿cómo puedo conseguir un objeto JSON en javascript.

  • javascript no sabe lo que su CollegeInformationDTO clase se parece. En mi último trabajo que hemos definido un objeto en la secuencia de comandos con la misma estructura que el modelo y, a continuación, hizo un jquery .mapa a mapa el modelo de objetos de javascript. También asegúrese de que lo que se pasa a la vista es una cadena JSON
  • Usted necesita serialise su Modelo de objeto JSON. Usted debe crear un método (o propiedad) que devuelve el resultado de la misma.
  • Puede usted por favor compartir conmigo algunas cosas para hacerlo. aquí, escribí var obj = JSON.stringify('@Model.CollegeInformationlist'); así, se debe convertir en un objeto JSON y capaz de dar resultado cuando escribir explícitamente .State de la propiedad, sino, no su trabajo como una forma. Se ve, el OBJETO se convierte al tipo de cadena.
InformationsquelleAutor dsi | 2014-10-13

5 Comentarios

  1. 104

    Puede utilizar el siguiente:

    var json = @Html.Raw(Json.Encode(@Model.CollegeInformationlist));

    Esta sería la salida de la siguiente (sin ver a su modelo sólo he incluido un campo):

    <script>
        var json = [{"State":"a state"}];   
    </script>

    Trabajo Violín

    AspNetCore

    AspNetCore utiliza Json.Serialize en lugar de Json.Encode

    var json = @Html.Raw(Json.Serialize(@Model.CollegeInformationlist));

    MVC 5/6

    Puede utilizar Newtonsoft para esto:

        @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model, 
    Newtonsoft.Json.Formatting.Indented))

    Esto le da más control sobre el formato json es decir, la sangría como en el anterior, camelcasing etc.

    • No pude encontrar JSON de referencia, recibiendo un error como The name 'Json' does not exist in the current context Si puedo agregar, Newtonsoft.Json. entonces, Encode no se encuentra.
    • href=»http://msdn.microsoft.com/en-us/library/system.web.helpers.json.encode(v=vs 111).aspx» >msdn.microsoft.com/en-us/library/…
    • Gracias. Funciona a la perfección.
    • No hay problema. 🙂
    • Para cualquier persona que utiliza AspNetCore, que utiliza Json.Serialize en lugar de Json.Encode.
    • Para las versiones más recientes de MVC 5/6 @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model, Newtonsoft.Json.Formatting.Indented))
    • añade un giro en su sugerencia: JsonConvert.SerializeObject(Model, Newtonsoft.Json.Formatting.Indented, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }) esto también asegura un correcto JavaScript CamelCase (o debería decir camelCase) para la serializado JSON.
    • Newtonsoft.Json.El formato.Sangría)) trabajó para mí
    • Si el objeto json que contiene los valores de cadena que contienen código html dentro de ellos, esto va a romper la página.

  2. 2

    Después de usar el código devar json = @Html.Raw(Json.Encode(@Model.CollegeInformationlist));

    Usted necesita utilizar JSON.parse(JSON.stringify(json));

    • Poca cosa, pero usted debe formatear el segmento de código en la segunda línea. Es demasiado pequeño como de una edición, por lo que no me deja hacerlo.
    • Todo correcto, muchas Gracias
  3. 1

    Si quieres hacer un objeto json a partir de yor modelo de hacer como esto :

      foreach (var item in Persons)
       {
        var jsonObj=["FirstName":"@item.FirstName"]
       }

    O Uso Json.Net para hacer json a partir de su modelo :

    string json = JsonConvert.SerializeObject(person);
  4. 1

    En ASP.NET Núcleo de la IJsonHelper.Serialize() devuelve IHtmlContent así que usted no necesita para envolver con una llamada a Html.Raw().

    Que debería ser tan sencillo como:

    <script>
      var json = @Json.Serialize(Model.CollegeInformationlist);
    </script>
  5. 1

    Pasar el objeto del controlador a la vista, convertir a marcado sin codificar y analizar a json.

    @model IEnumerable<CollegeInformationDTO>
    
    @section Scripts{
        <script>
              var jsArray = JSON.parse('@Html.Raw(Json.Encode(@Model))');
        </script>
    }

Dejar respuesta

Please enter your comment!
Please enter your name here