Передача нулевой переменной в контроллер MVC - PullRequest
0 голосов
/ 11 июня 2018

Я хочу передать значение (1) моему контроллеру, как вы видите:

<input id="myButton2" type="button" value="Call Controller Method" onclick="myff('1');"  />

Сценарий:

function myff(re) {
  $.getJSON('@Url.Action("MyControllerMethod","Reception",new {  area ="Admin"})', function (data) {
    refid = re;
  });
}

Вот мой контроллер

public JsonResult MyControllerMethod(string refid) {
  return Json("Controller Method call", JsonRequestBehavior.AllowGet);
}

Но когда я нажал кнопку, действие сработало, но refid в моем действии равно нулю, почему?

Ответы [ 2 ]

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

Вам необходимо передать значение во 2-м аргументе $.getJSON()

var url = '@Url.Action("MyControllerMethod","Reception",new { area ="Admin"})';
$.getJSON(url, { refid: re }, function (data) {
    console.log(data); // returns "Controller Method call"
});

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

<input id="myButton2" type="button" data-x="1" value="Call Controller Method" />

$('#myButton2.click(function) {
    var re = $(this).data('x');
    $.getJSON(.....
});
0 голосов
/ 11 июня 2018

Вместо $.getJSON(), попробуйте этот код:

function myff(re) {
$.ajax({
  dataType: "json",
  url: '@Url.Action("MyControllerMethod","Reception",new {  area ="Admin"})',
  data: {refid : re}
});

Примечание : хотя $.getJSON() звонит внутри $.ajax(), но последний дает вам большую гибкость- http://api.jquery.com/jQuery.getJSON/

...