. net mvc просмотр l oop на javascript обновление только первой строки в таблице - PullRequest
0 голосов
/ 08 июля 2020

У меня 2 строки в моем l oop.

У меня 2 проблемы:

  1. Кажется, что JavaScript выполняется на каждой итерации; однако он заполняет результат только данными первой строки таблицы.

  2. Мне нужно жестко закодировать объект JSON (на данный момент) в скрипте, но в идеале я хочу использовать строку Dynami c JSON из данных моей модели. Хотя всякий раз, когда я пытаюсь сослаться на него (@item.requestExample), JavaScript терпит неудачу, и inspect / console в браузере показывает, что он ссылается на строку и находит недопустимые токены. Вместо " будет найдено &quote;. (Я предполагаю, что это HTML представление строки?) Как я могу преобразовать это в настоящий JavaScript объект? Я пробовал:

    var obj = JSON.parse('@(HttpUtility.HtmlDecode(@item.requestExample))');
    

    и

    var obj = dataString.replace(/"/g, '"');
    

    безуспешно, потому что как только @item.requestExample упоминается в JavaScript, он находит недопустимые токены и бросает флаг.

Вот мой полный l oop в mvc представлении:

<code>@foreach (var item in Model.list)
{
<tr class="table-info">
    <td>@item.library</td>
    <td>@item.api</td>
    <td>@item.ibmiPgm</td>
    <td> <pre id="uglyPretty">
var pretty = document.getElementById ("uglyPretty"); var obj = {"success": 1, "resultMessage": "Success", "list": [{"custNo": "101", "firstName": "Имя: 101", "lastName": "Фамилия : 101 »,« адрес1 »:« Адрес1: 101 »,« адрес2 »:« Адрес2: 101 »,« город »:« Город: 101 »,« штат »:« 10 »,« почтовый индекс »:« 101 », "routing": "101", "accountNo": "101"}, {"custNo": "102", "firstName": "First Name: 102", "lastName": "Last Name: 102", "address1 ":" Address1: 102 "," address2 ":" Address2: 102 "," city ":" City: 102 "," state ":" 10 "," zip ":" 102 "," routing ":" 102 "," accountNo ":" 102 "}]}; document.getElementById ("uglyPretty"). внутренний HTML = JSON .stringify (obj, undefined, 2); Потребление API }

1 Ответ

0 голосов
/ 09 июля 2020

Мне кажется, вы просто пытаетесь вывести JSON из элемента модели в ячейку таблицы, верно? И проблема в том, что JSON не отформатирован, поэтому вы пытаетесь его распечатать? В этом случае вы делаете это намного сложнее, чем должно быть.

Не пытайтесь преобразовать JSON в Javascript объект только для его переформатирования; вместо этого используйте метод C# для переформатирования. Поскольку ваш вопрос отмечен тегом , я предполагаю, что в вашем проекте установлено Json. NET. Если это так, вы можете заменить весь этот неуклюжий код сценария следующим образом:

<code>    <td>
        <pre>@Newtonsoft.Json.Linq.JToken.Parse(item.requestExample).ToString()

Таким образом, полный l oop будет выглядеть так:

<code>@foreach (var item in Model.list)
{
    <tr class="table-info">
        <td>@item.library</td>
        <td>@item.api</td>
        <td>@item.ibmiPgm</td>
        <td>
            <pre>@Newtonsoft.Json.Linq.JToken.Parse(item.requestExample).ToString()
Потребление API }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...