как передать данные из представления в контроллер с помощью AJAX - PullRequest
0 голосов
/ 05 апреля 2019

Передача параметра из вида в контроллер с помощью Ajax, но при действии параметр отображается как пустой

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

Запрос Ajax

$.ajax({ 
            type: 'GET',
            url: '/Product/Edit',
            data: { Id: $(this).attr('dataid') }, //Id is fetching data but not getting passed to controller
            dataType: "json",
            contentType: "application/json; charset=utf-8"
});

Действие:

public ActionResult Edit(int  Id)
{
    var Category = ServProd.GetProductForId(Id);
    return PartialView(Category);
}

Кнопка:

<button class="ProdEdit" type="button" dataid="@Prod.Id">Edit</button>

1 Ответ

0 голосов
/ 05 апреля 2019

1) Измените ваш AJAX-вызов так, чтобы он выглядел следующим образом:

const dataToSend = { Id: $(this).attr('dataid') };
$.ajax({ 
    type: 'GET',
    url: '/Product/Edit',
    data: JSON.stringify(dataToSend),
    dataType: "json",
    contentType: "application/json; charset=utf-8",
    success: function (data) { 
        console.log(`Request passed!`);
        console.log(data);
    },
    error: function (jqXHR, textStatus, errorThrown) {
        console.log(`Request failed!`);
    }
});

2) Сделать модель на C #:

public class MyModel
{
    public int Id { get; set; }
}

3) Измените свой метод действия, чтобы он выглядел следующим образом:

public ActionResult Edit(MyModel RequestModel)
{
    var Category = ServProd.GetProductForId(RequestModel.Id);
    return PartialView(Category);
}

Теперь уместно связывание модели , и вы получите свой Id в свойство RequestModel.Id.

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