ASP .Net MVC, JQuery и AJAX - отсылаем данные на сервер

Задача: отослать данные на сервер, в действие (action) контроллера ASP MVC через AJAX-запрос на JavaScript. Идея тестого примера примитивна до предела - отсылаем что-то аяксом на сервер, с сервера отправляем обратно на форму и выводим в диалоговое окно.

На тестовом представлении должно быть следующее (заменить br стилями по своему вкусу):

<button id="ajaxTestButton1" type="button">Простая загрузка данных</button>
<br><br>
<input type="text" id="ajaxTesStr1" value="test2222" /> 
<button id="ajaxTestButton2" type="button">Отсылка одной строки</button>
<br><br>
<input type="text" id="ajaxTesStr3-1" value="test3-1" />
<input type="text" id="ajaxTesStr3-2" value="test3-2" />
<input type="text" id="ajaxTesStr3-3" value="test3-2" />
<input type="text" id="ajaxTesStr3-4" value="test3-2" />
<button id="ajaxTestButton3" type="button">Отсылка набора данных</button>

В контроллере следующие тестовые методы (подразумевается умолчальный контроллер Home)

        [HttpPost]
        public JsonResult AjaxTest1()
        {

            return Json("Строка возвращена с сервера");

        }

        [HttpPost]
        public JsonResult AjaxTest2(string testStr)
        {

            return Json("Сервер получил данные: " + testStr);

        }

        [HttpPost]
        public JsonResult AjaxTest3(TestData testData)
        {

            string tt = testData.TestStr1;
            return Json("Сервер получил данные со сложной структурой! Значения: " + testData.TestStr1 + ", " + testData.TestStr2 + ", " + testData.TestStr3 + ", " + testData.TestStr4);

        }

Где-то рядом

        public class TestData
        {
            public string TestStr1 {get; set; }
            public string TestStr2 { get; set; }
            public string TestStr3 { get; set; }
            public string TestStr4 { get; set; }
        }

С этого момента начинаются некоторые тонкости. DTO-обьект должен быть именно таким с get-set свойствами, если просто написать public string TestStr1 == ""; мы не увидим никаких ошибок, просто модель будет приходить пустой.

Вообще, любые ошибки при конвертации данных из полученных от JavaScript строк будут приводить к к незаполнению полей, вся конвертация идет в скрытом режим и просто так ее не увидишь - если например поле с датой приходит пустым имеет смысл попытаться записать это значение в строковое поле.

Ну и наконец собственно отсылка данных с JavaScript с учетомн аличия JQuery

<script type="text/javascript" src="~/Scripts/jquery-2.1.1.min.js"></script>

Скорее всего скрипт будет повешен на что-то в духе $(document).ready, но тестовом примере лишние отступы и скобки только помешают.

Само собой данные можно отсылать в разном виде - например JavaScript объекты но новичку обычно хочется не разнообразия, а чтобы хоть один метод заработал и стал отправной точкой для экспериментов. Я буду отсылать JSON.

$('#ajaxTestButton1').click(function () {
    //alert("AjaxTest");
    $.ajax({
        type: "POST",
        url: "/Home/AjaxTest1",
        data: param = "",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: successFunc,
        error: errorFunc
    });
});


$('#ajaxTestButton2').click(function () {
    //alert("AjaxTest2");

    var testData = { 'testStr': $("#ajaxTesStr1").val() };

    $.ajax({
        type: "POST",
        url: "/Home/AjaxTest2",
        data: JSON.stringify(testData),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: successFunc,
        error: errorFunc
    });
});

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


    var testData =
        {
            'TestStr1': $("#ajaxTesStr3-1").val(),
            'TestStr2': $("#ajaxTesStr3-2").val(),
            'TestStr3': $("#ajaxTesStr3-3").val(),
            'TestStr4': $("#ajaxTesStr3-4").val()
        };

    $.ajax({
        type: "POST",
        url: "/Home/AjaxTest3",
        data: JSON.stringify(testData),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: successFunc,
        error: errorFunc
    });
});


function successFunc(data, status) {
    alert(data);
}

function errorFunc(errorData) {
            alert('Ошибка' + errorData.responseText);
}

Из интересных моментов стоит отметить использование JSON.stringify (testData) - в теории оно не обязательно но без него можно получить (и я получал) совершенно невнятную ошибку Invalid JSON primitive error.

jQuery.ajax() на сайте JQuery


Комментарии

ASP .Net MVC, JQuery и AJAX - отсылаем данные на сервер — Комментарии (25)

  1. Welcome to your next beauty destination!

    Founded in 2014 by a female entrepreneur in Dubai with a strong vision that every person is unique and needs his beauty treat to fulfill his ultimate potential, an Art of Beauty Center has become a preferred style destination for both expats and residents in Dubai.
    An „Art of Beauty“ brand as first one in the UAE, that despite of the difference in cultural and linguistic barriers, as well as social norms of a new country, is offering an ultimate approach for a beauty care as an essential part of individual health care. It`s one of the selected salons, that offers a wide range of face, hair, and body treatments for all- ladies, gentlemen, and children.
    With a code of ethics, Art of Beauty eventually appeared to be to be a choice for personal care and beauty advice for many people with different background, age, nationality and workplace and interests. Over the first six months, the beauty center has shown its commitment to high professional standards and a delicate approach to individuality for everyone, who came here for an exceptional and delightful experience.
    Today, The Art of Beauty Center is a diverse range of professional`secrets and self-determination of every member of the team to perfection to create your phenomenal visual look and number one feeling.

  2. Предлагаем полностью рабочее ПО/We offer a ready solution for HYPACK 2016 ALL MODULES (CRACK - Dongle emulator/Custom license/Patch). Полная поддержка наших решений. Тестирование перед оплатой/Full support for our solutions. Testing before payment. Контакты/Contacts: nodongle24 /@/ gmail.com (remove spaces and /)

    ROCKEY 6 Dongle Emulator, Tinyhid Dongle Emulator, Rockey 4 Dongle Emulator, Guardant Sign Net Dongle Emulator, Katran Dongle Emulator, Emme Inrokey Hid Dongle Emulator, Katran Dongle Emulator, скачать, Guardant Stealth III Dongle Emulator, Unikey Dongle Emulator, Biteblock3 Dongle Emulator, price, Okey Hid Dongle Emulator, Smartkey Eutron Lpt Dongle Emulator, Rockey 2 Dongle Emulator.

  3. Есть такая услуга - добровольное медицинское обслуживание (или ДМО).
    Она предполагает, что пациент платит небольшую сумму за абонемент и ходит на прием в течение года не платя за каждый прием.
    Однако соцопросы показали, что лишь 3% жителей города знают о ее существовании.
    По какой причине?
    Да потому что частным клиникам выгоднее сдирать с людей деньги за каждый визит.
    А если честный врач посоветует добровольное медицинское обслуживание клиенту - это сулит ему увольнением.
    Информация о ДМО уже вызвала много скандалов, после того как информацию об услуге распространил один возмущенный врач.
    Его уволили , после того, как он предложил ДМО своему пациенту.
    Страшно, что официальные положения по ДМО находятся в открытом доступе, просто натыкались на эту информацию единицы.
    Как отстоять свои права?
    О правилах предоставления услуги и обязанностях клиник можно узнать, просто вбив в Яндекс фразу: "добровольное медицинское обслуживание".
    Обязательно обслуживание, а не страхование.

    34j5c6h86

  4. Большинство проблем на сайтах с низкой посещаемостью можно вскрыть за час-два и поправить за неделю.

    Проблемы которые сейчас я предлагаю решить:

    -Узнать как продвигает сайт ваш специалист и проверить текующую ситуацию по SEO?
    -Найду ошибки допущенные раньше и сформирую проект по исправлению ситуации.
    -Продемонстрирую как осуществлять контроль работу SEO эксперта.

    Желаете пригласить SEO эксперта?

    -Проведу собеседование потенциальногоSEO специалиста. Разберем по каким показателям оценивать его уровень.
    - Опишем отличия между нанятым в штат SEO, делегированном SEO и продвижении сайтов собственными силами.

    Планируете самостоятельно продвинуть имеющийся сайт. Расскажу все относительно продвижения, после консультации вам будет понятно:

    -Как много будет стоить проект по созданию сайта
    -Как долго требуется будет его продвигать для того чтобы достигнуть топов
    -Из каких ступеней сформировывается само по себе продвижение, схематично рассмотрим каждый из них.
    -Проанализируем в связи с чем не нужно пользоваться услугами фирм, оказывающих услуги по SEO

    Намереваетесь создать сайт и организовать его продвижение?

    -Расскажу и также продемонстрирую как спроектировать весьма недорогой и качественный вариант сайта.
    -Насколько объемным или сложным обязан стать ваш веб-сайт чтобы конкурировать в топе.
    -Сколько вкладывают ваши конкуренты в продвижение.
    -Насколько осуществимо войти в топы с вашим сайтом и с вашим бюджетом.

    Хотите узнать окупится ли консультирование?

    Позвоните по телефону или в скайп - я дам ответ на все проблемы затрагивающие SEO и любого вашего веб-сайта.

    Любые вопросы - позвоните +7(812)9114848 или по скайпу admin1.ru
    Часовая беседа по стоимости 3тыс руб., имеется возможность заключение договора и оплата на расчетный счет.
    Оказываю бесплатные консультации за рекомендации (т.к. у большинства интернет-ресурсов проблему видно практически сразу)

    acol7wns24

  5. Существует такая услуга - добровольное медицинское обслуживание .
    Она предполагает, что вы платите небольшую сумму за то, что посещает врачей целый год не платя за каждый прием.
    Однако соцопросы показывают, что лишь 3% жителей Санкт-Петербурга знают о такой программе.
    По какой причине?
    Да потому что клиникам выгоднее сдирать с людей деньги за каждый визит.
    А если честный врач попытается рассказать про добровольное медицинское обслуживание клиенту - это сулит ему увольнением.
    Эта информация уже спровоцировала множество скандалов, после того как информацию об этом рассекретил один возмущенный врач.
    Его уволили "по собственному желанию", после того, как он посоветовал ДМО постоянному клиенту.
    Самое ужасное, что информация по ДМО присутствуют в открытом доступе, просто находили на эту информацию только случайные люди.
    Как отстоять свои права?
    О правилах предоставления такой услуги и обязанностях частных клиник можно узнать, сделав запрос в Яндексе: "добровольное медицинское обслуживание".
    Обязательно обслуживание, а не страхование.

    34j5c6h86

  6. На сайтах с невысокой конкуренцией возможно раскрыть за час-два и поправить за неделю.

    Проблемы которые я предлагаю разрешить:

    -Проверить как работает с сайтом ваш SEO специалист и проверить его компетентность?
    -Покажу просчеты сделанные раньше и построю порядок по урегулированию ситуации.
    -Продемонстрирую как контролировать работу SEO специалиста.

    Планируете пригласить SEO эксперта?

    -Помогу провести собеседование потенциальногоSEO специалиста. Разберем по каким критериям оценивать его уровень.
    - Опишем различия между нанятым в штат SEO, делегированном SEO и продвижении сайтов личными средствами.

    Собираетесь самостоятельно раскрутить существующий интернет-сайт. Расскажу все насчет продвижения, после консультации вам станет понятно:

    -Сколько будет стоить ваш сайт
    -Сколько по времени нужно будет его продвигать чтобы добиться топов
    -Из каких именно ступеней состоит само по себе продвижение, в целом проанализируем каждый из них.
    -Проанализируем почему не нужно пользоваться услугами фирм, оказывающих такие услуги как по SEO

    Собираетесь создать вебсайт и начать его продвижение?

    -Расскажу и также покажу каким способом разработать очень экономный и отличный вариант интернет-сайта.
    -В какой мере большим или сложным может быть ваш личный интернет-сайт для того чтобы составлять конкуренцию в топе.
    -Сколько вкладывают ваши конкуренты в продвижение.
    -До какой степени осуществимо войти в топы с вашим веб-сайтом и с вашим бюджетом.

    Думаете проверить окупится ли консультация?

    Позвоните по телефону либо в skype - я дам ответ на все имеющиеся вопросы касающиеся SEO и любого интернет-ресурса.

    Любые вопросы - сделайте звонок +7(812)9114848 или по скайпу admin1.ru
    Часовая беседа по стоимости 3тыс руб., имеется возможность заключение договора и проплата на расчетный счет.
    Оказываю безвозмездные консультации за отзыв (таким образом у основной массы web-сайтов проблему видно практически сразу)

    acol7wns24

  7. Столько времени потратил на решение проблемы с приходящей из View пустой модели и нигде нет никакой информации, что модель должна быть обязательно с GET-SET.. Спасибо вам большое!)

Добавить комментарий для JeffreyAxota Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>