Как передать дополнительную model во Modal view в Asp.net Core 2.0?

166
30 октября 2018, 21:30

Подскажите, как можно передать дополнительную model во Modal view

имеет 2 таблицы, образно, на страницу Create передается @model base.Accounts

вызывается

public async Task<IActionResult> Create()
{
    await ConfigureSelectedList();
    return View();
}

в котором реализовано заполнение полей (Login, pass, и т.д.) и имеется выпадающий список пользователей SelectList.EmployeeId

на странице имеется кнопка, которая вызывает появление Модального окна для быстрого добавления пользователя в таблицу Employee (ФИО + ДР, отдел и т.д.)

как передать модель @model base.Employee в ModalView, чтобы при нажатии кнопки "Добавить" в ModalView шло обращение к контроллеру

на примере функции

function btnSaveAddEmployee() {
    $.post('/Accounts/_AddEmployee', **как то отправить модель из ModalView**);
}

в контроллере

[HttpPost]
public async Task<IActionResult> _AddEmployee(Employee employee)
{
    var result = new Employee
    {
        FirstName = employee.FirstName
    };
    await _db.Employees.AddAsync(result);
    await _db.SaveChangesAsync();
    return Ok(result);
} 
Answer 1

Создайте js-объект, который будет совпадать (название полей) с моделью, например:

var parameters = {
    CoefficientA: $('#coefficient-a').val(),
    CoefficientB: $('#coefficient-b').val(),
    CoefficientC: $('#coefficient-c').val(),
    Step: $('#step').val(),
    RangeFrom: $('#range-from').val(),
    RangeTo: $('#range-to').val()
};

Затем отправьте Ajax запрос с этим объектом:

$.ajax({
    url: '/Computing/CalculationData',
    type: 'POST',
    data: parameters,
    success: drawingGraph,
    beforeSend: function () {
        $('#loader').show();
    },
    complete: function () {
        $('#loader').hide();
    }
});

Если надо перейти куда-то или обновить страницу, то после успешной отправки запроса используйте window.location.href.

UPDATE:

<button onclick="AddEmployee()">Добавить</button>

function AddEmployee() {
    var employee = {
        // Собираем инфу с полей в html
        FirstName: $('#fname').val(),
        LastName: $('#lname').val()
    };
    $.ajax({
        url: '/Accounts/_AddEmployee',
        type: 'POST',
        data: employee
    });
}
READ ALSO
C# нарисовать таблицу в textBox (псевдографика)

C# нарисовать таблицу в textBox (псевдографика)

ПриветсвтуюЕсть задача отобразить таблицу в компоненте textBox

154
Прозрачный TextBox

Прозрачный TextBox

У меня есть форма с установленной фоновой картинкойПоверх у меня лежит TextBox1

182
Убрать порт 8080 с url

Убрать порт 8080 с url

Всем привет, нужна помощь такого характераРазвернул докер, клонил отсюда https://github

165
laravel, скачка файла с сервера

laravel, скачка файла с сервера

Скорее всего вопрос глупый, и косяк явно в роутах, но я не вижу где он Генерирую столбы с имена файлами и ссылками на данный файл

200