Невозможно создать представление из моделей, созданных из сложных классов JSON.C#

Место общения программистов C#
Ответить
Anonymous
 Невозможно создать представление из моделей, созданных из сложных классов JSON.

Сообщение Anonymous »

Это моя строка в индексном методе. Я пытаюсь преобразовать строку 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»