【问题标题】:Controller action is not called in view using Javascript使用 Javascript 未在视图中调用控制器操作
【发布时间】:2015-02-16 07:29:58
【问题描述】:

我对 MVC 非常陌生。我有读取 xml 字符串并显示各种值的 javascript 函数。 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>';
            }

          })
       }

我不知道出了什么问题。

【问题讨论】:

  • 什么样的 HTTP 错误会返回您的请求?
  • @Nicolai。我该如何检查?
  • 您最好删除 dataType,尤其是当您期望 JSON 作为回报时。应该是dataType: "json" 或者干脆将其删除,它将被自动处理。
  • 在浏览器的开发者控制台中,尝试按F12或Ctrl+Shift+I
  • 你真的有一个名为QueryControllerController的控制器吗?总是使用助手来构造你的 url 的 url: '@Url.Action("DecryptMessage", "QueryController")',

标签: javascript ajax asp.net-mvc actionresult


【解决方案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);
 }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多