Значения в таблице в .cshtml не обновляются после публикации с использованием ajax - PullRequest
0 голосов
/ 07 февраля 2019

Мне нужно показать информацию о таблице в 2.cshtml, которая находится на другой странице 1.cshtml, которая называется @ Html.Action ("Action", "Controller"), в зависимости от строки, выбранной в таблице внутри 1.cshtml, проблема в том, что информация не обновляется после того, как представление возвращается.

Когда вы выбираете строку в таблице (1.cshtml), javascript дает мне значение ячейки, которая мне нужна из этой строки, после этого я делаю ajax-сообщение на свой контроллер, и он успешно обращается к нему, затем мой контроллер возвращает представление и получает доступ к моему 2.cshtml с помощью таблицы, затем он запускается в моем для отображения информации, но проблема заключается в том, что мой 2.cshtml никогда не перезагружается, поэтому строки моей таблицы никогда не обновляются.

Код для отправки на контроллер

function submitForm(row) {
        var idTool = el('idTool').value = row.cells[0].innerHTML;
        var url_ = '../Tools/ToolTable';
        jQuery.ajax({
            type: "POST",
            url: url_,
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            data: JSON.stringify({ idToolPost:idTool })
        });
}

Контроллер

[HttpPost]
public ActionResult ToolTable(int idToolPost)
{
    var entitieTool = new Models.ToolControlEntities2();
    List<Models.Tool> t = entitieTool.Tools.ToList();
    List<Models.Equip> eqp = entitieTool.Equips.Include(x => x.Equip_Tool).ToList();
    List<Models.Equip_Tool> eqpt = entitieTool.Equip_Tool.Include(x => x.Equip).Where(x => x.id_Tool == idToolPost).ToList();

    ToolEquip ttteqpceteqptflt = new ToolEquip(eqpt, t, eqp);
    ViewBag.SuccessMessage = "The information was succesfuly displayed.";

    return View(ttteqpceteqptflt);
}

Таблица для отображения результата

    <table>
        <div>
            <thead>
                <tr>
                    <th> Tool</th>
                    <th> Equip</th>
                    <th> Active</th>
                </tr>
            </thead>
        </div>
        <tbody>
            @for (int x = 0; x < Model.eqtool_.Count; x++)
            {
                <tr>

                    <td style="display: none"><input id="idEquip" name="eq[@x].id_Equip" type="hidden" value="@Model.eqtool_[x].id_Equip" /></td>
                    <td style="display: none"><input id="idEquip" name="eq[@x].id_Tool" type="hidden" value="@Model.eqtool_[x].id_Tool" /></td>
                    <td>@Model.eqtool_[x].Tool.Tool_Name</td>
                    <td>@Model.eqtool_[x].Equip.Equip_Name</td>
                    <td>@Html.CheckBox("@Model.eqtool_[x].active")</td>
                </tr>
            }
        </tbody>
    </table>

После того, как он запустил мой для страницы, не показывает новую информацию, вот где я думаю, что я пропускаю обновление где-то.

1 Ответ

0 голосов
/ 07 февраля 2019

Так что я решил свою проблему, я просто использовал следующее: таблица была сохранена в моей переменной "texto", а затем я просто заменяю tbody (информацию, которая мне нужна) следующей строкой

document.getElementById('tooltabletbody').innerHTML = texto; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...