Как вставить данные в таблицу деталей в ядре mvc с помощью (Jquery) или (Jquery и Ajax) - PullRequest
0 голосов
/ 27 сентября 2018

разработчик старой школы на c # здесь. Короче говоря, компания, в которой я работаю, решила продолжить разработку с использованием базовой технологии, и как бывший разработчик winforms я не знаком с концепциями сети и не могу сохранить деталистол к основному столу.Любая помощь очень ценится.

У меня есть две таблицы с отношением «1 ко многим»

TOURNAMENTS_M (Master)

TOURNAMENTS_D (Detail) 

Я отредактировал созданную лесом страницу «Создать», включив в нее поля для таблицы сведений для ввода.

Мне даже удалось обновить (визуально) таблицу для добавленных записей сведений с помощью Jquery.

У меня проблемы с сохранением этой информации в моей базе данных, хотя было несколькоразличных учебных пособий, которым я следовал с разными подходами ... но не смог добиться успеха, не используя ни один из подходов ...

1-й Подход использует методы Jquery и Ajax.Я видел примеры, когда люди сохраняют данные через модальное окно, и при нажатии кнопки «Сохранить» данные обновляются в виде таблицы, так что я понял (поправьте меня, если я ошибаюсь). Ajax используется для перезагрузки данных без обновления страницы, иотправить данные на контроллер.В моем случае я не уверен, что это правильный метод для использования, так как основной и дочерний элементы управления находятся на одной странице.

2nd Подход использует только Jquery

в этом подходе мой метод Create в контроллере и методы jquery выглядят следующим образом:

[HttpPost]
    [ValidateAntiForgeryToken]
    public async Task<IActionResult> Create(TOURNAMENTS_M pTournamentsM)
    {

        if (ModelState.IsValid)
        {
            _context.Add(pTournamentsM);
            await _context.SaveChangesAsync();
            return RedirectToAction(nameof(Index));
        }
        return View(pTournamentsM);
    }

function GetCurrentDetail() {

var TD_LEVEL = $("#TD_LEVEL").val();
var TD_SB = $("#TD_SB").val();
var TD_BB = $("#TD_BB").val();


var tourDetail = {
    "TD_LEVEL": TD_LEVEL,
    "TD_SB": TD_SB,
    "TD_BB": TD_BB
};

return tourDetail;

}

// срабатывает при нажатии кнопки добавления детализации функции CreateRowForTourDetails () {

    var current = GetCurrentDetail();
    var index = $("#detailsTable").children("tr").length;


    var indexcell = "<td style='display:none'> <input type='hidden' id='index" + index + "' name='TOURNAMENTS_D.index' value = '" + index + "' /> </td>";

    var TD_LEVEL = "<td> <input type='hidden' id='TD_LEVEL" + index + "' name='TOURNAMENTS_D[" + index + "].TD_LEVEL ' value = '" + current.TD_LEVEL + "' />" + current.TD_LEVEL + " </td>";
    var TD_SB =    "<td> <input type='hidden' id='TD_SB" + index + "' name='TOURNAMENTS_D[" + index + "].TD_SB ' value = '" + current.TD_SB + "' />" + current.TD_SB + " </td>";
    var TD_BB =    "<td> <input type='hidden' id='TD_BB" + index + "' name='TOURNAMENTS_D[" + index + "].TD_BB ' value = '" + current.TD_BB + "' />" + current.TD_BB + " </td>";

    //var removeButton = "<td><a id ='myRemove' data-itemId='0'  class='btn btn-primary'>Remove</a></td>";

    var tourDetail = "<tr>" +indexcell +  +TD_LEVEL + TD_SB + TD_BB  + "</tr>";

    var detailsTableBody = $("#DetailsTableBody");

    detailsTableBody.append(tourDetail);     
}

с помощью этого метода, когда я размещаю точку останова внутри функции Create в моем контроллере, я вижу, что счетчик TOURNAMENTS_D увеличивается, но значение равно нулю enter image description here

1 Ответ

0 голосов
/ 28 сентября 2018

Попробуйте инструмент отладки веб-браузера, чтобы проверить запрос, убедитесь, что ваш запрос, как показано ниже:

enter image description here

Вот моя модель:

    public class Order
{
    public int Id { get; set; }
    public string OrderNo { get; set; }
    public ICollection<OrderDetail> OrderDetails { get; set; }
}

public class OrderDetail
{
    public int Id { get; set; }
    public int ProductId { get; set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...