Действие контроллера не вызывается с помощью 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);
}