使用Javascript不会在视图中调用控制器操作

时间:2015-02-16 07:29:58

标签: javascript ajax asp.net-mvc actionresult

我是MVC的新手。我有javascript函数读取xml字符串并显示各种值。 XML中的一个元素是加密形式。我在控制器中写了一个方法,它将返回解密的字符串,但我无法使用ajax在我的javascript方法中调用该方法。下面是控制器方法和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 个答案:

答案 0 :(得分:1)

由于这是您使用的网址:localhost/LogViewerPortal/Query/Index,因此您的AJAX应该触发相同的网址。另外,将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);
 }