Это моя строка в индексном методе. Я пытаюсь преобразовать строку JSON в объект MultipleClasses и хочу отобразить ее в моем представлении. Но не могу этого сделать.
if (response.IsSuccessStatusCode)
{
data = response.Content.ReadAsStringAsync().Result;
MultipleClasses GetData = JsonConvert.DeserializeObject(data);
return View(GetData );
}
Это класс ViewModel
using ExternalAPIModule.Models;
using Microsoft.AspNetCore.Mvc.Rendering;
namespace ExternalAPIModule.ViewModel
{
public class MultipleClasses
{
public User? User;
public List? products { get; set; }
public List? variants;
}
}
Это мой класс модели (копирование как есть)
using Newtonsoft.Json;
//using static ExternalAPIModule.Models.User.Users;
using static ExternalAPIModule.Models.User;
namespace ExternalAPIModule.Models
{
public class User
{
public Users[] products { get; set; }
}
public class Users
{
[JsonProperty("id")]
public double? id { get; set; }
[JsonProperty("vendor")]
public string? vendor { get; set; }
[JsonProperty("title")]
public string? title { get; set; }
[JsonProperty("created_at")]
public string? created_at { get; set; }
public string? body_html { get; set; }
public variant[] variants { get; set; }
}
public class variant
{
public string? price { get; set; }
public string? compare_at_price { get; set; }
}
}
Как отобразить модель в представлении для отображения данных JSON? Я хочу преобразовать JSON в свое представление с помощью ViewModel в ASP.NET MVC.
В настоящее время я пытаюсь использовать это представление, которое выдает ошибку:
@model IEnumerable
@Html.DisplayNameFor(model => model.products.id)
@Html.DisplayNameFor(model => model.products.vendor)
@Html.DisplayNameFor(model => model.products.title)
@Html.DisplayNameFor(model => model.products.created_at)
@Html.DisplayNameFor(model => model.products.body_html)
@Html.DisplayNameFor(model => model.variant.price)
@Html.DisplayNameFor(model => model.variant.compare_at_price)
@foreach (var item in Model)
{
@Html.DisplayFor(modelItem => item.products.id)
@Html.DisplayFor(modelItem => item.products.vendor)
@Html.DisplayFor(modelItem => item.products.title)
@Html.DisplayFor(modelItem => item.products.created_at)
@Html.DisplayFor(modelItem => item.products.body_html)
@Html.DisplayFor(modelItem => item.variant.price)
@Html.DisplayFor(modelItem => item.variant.compare_at_price)
@Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) |
@Html.ActionLink("Details", "Details", new { /* id=item.PrimaryKey */ }) |
@Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ })
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... on-classes