ASP.Net MVC WebAPI - Как отображать данные JSON в представлении - PullRequest
0 голосов
/ 15 октября 2019

Я пробовал много вещей, но я все еще не могу отобразить данные в View. Я получаю только нулевой результат на странице просмотра. Когда я отлаживаю, используя точку останова, я могу ясно видеть данные в переменных, но не могу вернуть их в View. Похоже, мне нужен список ...
Цель состоит в том, чтобы вернуть данные json в представлении HTML.

        public async Task<ActionResult> GetAPIStringAsync(Students model)
        {

            HttpClient client = new HttpClient();

            string APIdatas = null;

            HttpResponseMessage response = await client.GetAsync("https://jsonplaceholder.typicode.com/todos/");
            if (response.IsSuccessStatusCode)
            {
                APIdatas = await response.Content.ReadAsStringAsync();
            }


            var stringJson = JsonConvert.DeserializeObject<IEnumerable<Students>>(APIdatas);

            return Json(model, JsonRequestBehavior.AllowGet);
            return View();

        }


public class Students
{
    public int Id { get; set; }
    public string Title { get; set; }
    public string Url { get; set; }
}

, и в моем представлении у меня есть это:

@model IEnumerable<AutoMobile.Web.Models.Manage.Students>

@foreach (var item in Model.OrderBy(x => x.Id))
{

<td>
    @Html.DisplayFor(modelItem => item.Id)
</td>
<td>
    @Html.DisplayFor(modelItem => item.Title)
</td>
<td>
    @Html.DisplayFor(modelItem => item.Url)
</td>


}

1 Ответ

0 голосов
/ 15 октября 2019

Сначала подготовьте данные JSON. Затем сопоставьте эти данные с классом C #

Итак, сначала создайте класс C #, который будет содержать данные Json

public class RootObject
{
    public int userId { get; set; }
    public int id { get; set; }
    public string title { get; set; }
    public bool completed { get; set; }
}

После создания класса C # вы можете получить json и десериализовать его в класс C #Затем Вы должны вернуть эту модель для просмотра.

public ActionResult GetJsonDataModel()
    {
        var webClient = new WebClient();
        webClient.Headers.Add(HttpRequestHeader.Cookie, "cookievalue");
        var json = webClient.DownloadString(@"https://jsonplaceholder.typicode.com/todos/1");
        Models.JsonModel.RootObject objJson = JsonConvert.DeserializeObject<Models.JsonModel.RootObject>(json); //here we will map the Json to C# class
        //here we will return this model to view
        return View(objJson);  //you have to pass model to view
    }

Теперь в режиме просмотра вы должны написать ниже код:

@model ProjectDemoJsonURL.Models.JsonModel.RootObject
@{
    ViewBag.Title = "GetJsonDataModel";
    Layout = "~/Views/Shared/_Layout.cshtml";
 }
<h2>GetJsonDataModel</h2>
@{ 
   <table>
    <tr>
        <th>userId</th>
        <th>id</th>
        <th>title</th>
        <th>completed</th>
    </tr>
    <tr>
        <th>@Model.userId</th>
        <th>@Model.id</th>
        <th>@Model.title</th>
        <th>@Model.completed</th>
    </tr>
</table>
}

Пожалуйста, проверьте ниже ссылку: в блоге ниже, Json данныеизвлекается из URL в методе контроллера, затем json десериализуется в класс модели, затем эта модель возвращается в представление, и данные отображаются в представлении

https://fullstackdotnetcoder.blogspot.com/p/how-to-read-parse-json-data-from-url-in.html

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...