Действие контроллера не вызывается с помощью Javascript

Я очень новый в MVC. У меня есть функция JavaScript, которая читает строку XML и отображает различные значения. Один из элементов в XML находится в зашифрованном виде. Я написал метод в контроллере, который будет возвращать расшифрованную строку, но я не могу вызвать этот метод внутри моего метода javascript, используя ajax. Ниже приведен код метода контроллера и код JavaScript.

 [HttpPost]
 public ActionResult DecryptMessage(string message)
 {
       string decryptedMessage= Encryption.DecryptData(message);
       return Json(decryptedMessage);
 }

часть кода Javascript

if ((x[i].nodeName).toUpperCase() == "MESSAGE" ) {
           //alert(childnd.nodeValue);
          $.ajax({
          type: "POST",
          data: { value: childnd.nodeValue },
          url: "/QueryController/DecryptMessage",
          dataType:"string",
          Success: function (result) {
          if (result > 0) {
               stringDetails = stringDetails + '<br><strong>Value:</strong>' + result + '<br>';
            }

          })
       }

Я не могу понять, что не так.

1 ответ

Решение

Так как это ваш URL, над которым вы работаете: localhost/LogViewerPortal/Query/IndexВаш AJAX должен запускаться по тому же URL. Кроме того, изменить Success в success:

if ((x[i].nodeName).toUpperCase() == "MESSAGE" ) {
           //alert(childnd.nodeValue);
          $.ajax({
          type: "POST",
          data: { message : childnd.nodeValue },
          url: "/LogViewerPortal/Query/DecryptMessage",
          success: function (result) {
          if (result) {
               stringDetails = stringDetails + '<br><strong>Value:</strong>' + result + '<br>';
            }

          })
       }

И если вы хотите вернуть строку из вашего контроллера, вы можете изменить на:

[HttpPost]
 public ActionResult DecryptMessage(string message)
 {
       string decryptedMessage= Encryption.DecryptData(message);
       return Content(decryptedMessage);
 }
Другие вопросы по тегам