Как передать значение из представления на другой контроллер в MVC ASP .NET - PullRequest
0 голосов
/ 29 июня 2018

Я хочу передать выбранный индекс выпадающего списка в представлении другому контроллеру. Я использую Java-скрипт для получения индекса dropdaownlist. Я получил индекс.

Но я хочу передать этот индекс другому контроллеру по нажатию моей кнопки.

Как я могу это сделать?

вот мой снипет Java-скрипта

  $('#btnsubmit').click(function () {

        var deviceid = $('#ddldevice option:selected').val();

        $.ajax({
            type: 'GET',
            data: { deviceid: deviceid },
            url: '@Url.Action("ViewSensorTable","Home")',
            success: function (result) {


            }

        });

Код моей кнопки

 <input type="submit" id="btnsubmit" value="Next" class="btn btn-primary btn-sm" />

А вот контроллер, где я хочу значение индекса

 public ActionResult ViewSensorTable(int id)
 {
     return View();
 }

Отредактировано

$('#btnsubmit').click(function () {

    var deviceid = $('#ddldevice option:selected').val();

    $.ajax({
        type: 'GET',
        data: { id: deviceid },
        url: '@Url.Action("ViewSensorTable","Home")',
        success: function (result) {


        }

    });

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Вам необходимо передать deviceid с запросом ajax. Также имя параметра в методе действия должно совпадать с параметром, который вы отправляете с помощью ajax. Попробуйте следующий код:

View

    <input type="submit" id="btnsubmit" value="Next" class="btn btn-primary btn-sm" />

    $('#btnsubmit').click(function () {

        var deviceid = $('#ddldevice option:selected').val();
        alert(deviceid);  //Comment it after testing

        $.ajax({
            type: 'GET',
            data: { id: deviceid },
            dataType: "json",
            url: '@Url.Action("ViewSensorTable","Home")',
            success: function (result) {
               //do something with the result
            }
        });
}

Контроллер

[HttpGet]
public ActionResult ViewSensorTable(int id)
 {
     return View();
 }
0 голосов
/ 29 июня 2018

Попробуйте заменить свой URL-адрес на

url: '@Url.Action("ViewSensorTable","Home")' + '/' + deviceid,

Или, если ваше действие [HTTPPost], вам нужно изменить,

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