Метод Jquery .post отправляет нулевое значение.Как передать фактическое значение контроллеру? - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть контроллер, который применяется к представлению редактирования в asp.net MVC. У меня есть actionlink, который отправляет идентификатор строки в контроллер, который затем возвращает правильную строку, чтобы увидеть в связанном представлении.

У меня есть частичное представление ниже этого. Для этого также требуется параметр, чтобы перенести связанные данные из другой таблицы.

У меня есть вызов Jquery .post, который запускается после загрузки страницы. Я могу предупредить и показать точное значение, которое я хочу отправить контроллеру.

   $(document).ready(function () {
        var url = "/Home/MmsAndNotes";
        var Uc = $("#Id").serialize();
        alert(Uc);
        $.post(url, {Id: Uc}, function (data) {
          alert("what is Uc now? " + uc); //just for testing
        });
    })

Я тоже так использовал.

$(document).ready(function () {
        var url = "/Home/MmsAndNotes";
        var Uc = $("#Id").val();
        alert(Uc);
        $.post(url, Uc, function (data) {

        });
    })

предупреждения появляются и показывают желаемое значение. Однако при выполнении вызова .post он отправляет нулевое значение. Вот мой контроллер.

 public ActionResult MmsAndNotes(string Id)
    {
        //Declare LogisticsVM for individual policy info
        LogisticsMMS_NotesVM model;
        if(uc == null)
        {
            return Content("uc is empty.");
        }

        int val = Convert.ToInt32(uc);

        using (Db db = new Db())
        {
            LogisticsMMS_NotesDTO dto = db.LogisticsMMS.Find(val);

            //confirm policy exists
            if (dto == null)
            {
                return Content("This policy cannot be found." + val);
            }

            model = new LogisticsMMS_NotesVM(dto);
        }

        return PartialView(model);
    }

Всегда возвращается, так как uc пуст. Я повторяю, когда появляются оповещения. Я получаю правильное значение для отправки на контроллер. Но как только он отправляет, что-то происходит, и он превращается в ноль. HELPPPPP .. пожалуйста .. Я схожу с ума по этому поводу.

Ответы [ 2 ]

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

это решение должно работать:

    $(document).ready(function () {
            $.ajax({
        url: '/Home/MmsAndNotes',
        type: 'GET',
        dataType: "html",

        data: { uc : $("#Id").val() }, 
     success: function (result) { 
         code here
                               }
    });
        })

Вам необходимо проверить, не $ ("# Id"). Val () не пусто

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

Я не знаю почему, но замена моего вызова $ .post () на вызов $ .ajax ({}) решила проблему.Как вы можете видеть выше, у меня был вызов $ .post.Вместо этого

 $.ajax({
            type: "POST",
            url: "/Home/MmsAndNotes",
            dataType: 'text',
            data: { Id: Uc }
        });

Решено.Я думал, что сокращенные звонки Jquery работали так же.Они, конечно, могли бы, но делать это таким образом было единственным способом, который работал для меня.

PS Спасибо, Тайлер (выше) за ваши комментарии.

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