C # - получить значение текстового поля и отправить в функцию JavaScript - PullRequest
0 голосов
/ 17 октября 2011

У меня есть простая форма с тремя текстовыми полями и <canvas> на той же странице, и я должен проверить эти три поля и затем получить значения (если они проверены), отправленные в функцию javascript, чтобы нарисовать картинку и немного текста внутри элемент <canvas>. Форма и текстовые поля не должны исчезнуть после отправки значений, поскольку пользователь может опробовать разные результаты с разными значениями. Я делал другие формы раньше, но никогда не пытался использовать Ajax. Я знаю, что мог бы использовать проверку на стороне клиента и получить значения текстового поля с помощью jQuery, но у меня работает больше кода на стороне сервера, который будет использовать эти три значения. Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 17 октября 2011

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

public useResults(string value1, string value2) 
{
    // ... Do something with the results

    return Json(true);
}

На ваш взгляд, найдите способ построить URL для вышеуказанного действия.Возможно, в скрытом поле;

@Html.Hidden("useResultsUrl", Url.Action("useResults", "controllerName"))

Затем в своем javascript присоедините событие нажатия кнопки, как вы, вероятно, уже (для запуска задачи javascript), и добавьте вызов ajax.

Обратите внимание, что следующее использует JQuery, но вы можете использовать Microsoft AJAX, если предпочитаете;

$(function () {
   $("#button").click(function() {
      $.ajax({
          url: $("input[name='useResultsUrl']").val(), // Get the url from the hidden field
          type: "POST",
          dataType: "JSON",
          data: $("input[type='text']").serialize() // Get the value of the text inputs and serialise them.
      });
   });

   // ... do other stuff 
});
0 голосов
/ 17 октября 2011

Ваш View может сделать ajax-вызов на сервер, используя JQuery - либо используя JQuery.post или JQuery.ajax - вы передаете URL-адрес действия контроллера методу JQuery, и он будет обрабатывать вызов AJAX для вас.

Затем в действии контроллера вы возвращаете JsonResult, который сериализует данные для вас в формате JSON:

e.g. return Json( model ); 

Наконец, реализуйте функцию успеха в вызове JQuery Ajax в вашем представлении - для этого вам будут доступны данные, возвращаемые контроллером, чтобы вы могли делать с чем угодно.

...