Как поразить контроллер из JQuery? - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть контроллер и Jquery. Я хочу поразить контроллер из JQuery. Но я не могу поразить контроллер. Пожалуйста, предложите мне, где я ошибаюсь и какие дополнительные вещи необходимы, чтобы поразить контроллер.

Эта строка кода дает мне ошибку $(this).load(raceId);

GET http://localhost:53987/Races/RacesName?id=103646584 500 (внутренний Ошибка сервера)

Контроллер

public ActionResult RacesName(int race)
{
  ClsRaces clsRaces = new ClsRaces();
   race = clsRaces.RaceId;
    return View();
}

Сценарий

  var race = $(this).data("raceid");
  var raceId = '@Url.Action("RacesName", "Races")?id=' + race;
  $(this).load(raceId);

Ответы [ 2 ]

0 голосов
/ 30 апреля 2018

На самом деле мы можем сделать это разными способами.

1) Лучший способ, который я предлагаю, - написать ajax call

$.ajax({
    url: '/Races/RacesName',
    dataType: 'text',
    type: "GET",
    async: true,
    data: {
        race: race   
    },
    success: function (data) {                          
      console.log('Success');
      // Perform any action you would like to do.
      // If you want to redirect to some other controller or method
         // window.location.href= '/Races/Racedetails'
      // If you want to perform UI actions
         // $(.selector).hide();  $(.selector).show(); 
    },
    error: function (data) {
        console.log('Error occured');
        // Taking care of error // handle exceptions or errors
    }
});

2) Прямо вы можете использовать window.location.href

  window.location.href = '/Races/RacesName?race='+ race;
   // This method can only redirect to respective controller action method. But further control will not be in our hands.
0 голосов
/ 30 апреля 2018

У вашего метода есть параметр с именем int race, но вы не отправляете пару имя / значение для race (то, что вы отправляете, - это единица для параметра с именем id)

Либо измените сценарий на

var raceId = '@Url.Action("RacesName", "Races")?race=' + race;

OR

изменить метод контроллера на

public ActionResult RacesName(int id)

В качестве дополнительного примечания вы можете использовать инструменты браузера (вкладка «Сеть») для проверки ответа, который будет включать в себя сведения об исключении, которое выдается (в вашем случае это было то, что значение не было предоставлено для race параметр)

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