【问题标题】:Calling a C# method from JavaScript从 JavaScript 调用 C# 方法
【发布时间】:2015-02-27 14:33:58
【问题描述】:

我想在我的 JavaScript 工厂 LoginFactory.js 中从我的控制器 AccountController.cs 调用方法 GetAccount。像这样的:

AccountController.cs:

public Account GetAccount(string userName)
    { ... }

LoginFactory.js:

if(x>y) {
   var account = <%AccountController.GetAccount(someParam);%>
}

我已尝试使用 [WebMethod] 和 Ajax,但无法正常工作:我收到 404 响应。

【问题讨论】:

  • 能否请您发布您的 Ajax 请求的代码?你检查了this 的帖子吗?
  • 您不能直接从客户端调用方法到服务器端。相反,请使用服务或WebMethod。您声称这不起作用,因此请发布失败的代码,包括 javascript 和 C#,否则将很难确定是什么问题。
  • 如果您收到 404,几乎可以肯定,您的 web 服务没有部署到您正在访问的服务器上,或者您访问了错误的服务器。我会查看 Fiddler/Firebug 跟踪,看看它是否会转到您的 IIS 服务器的正确路径。

标签: javascript c# asp.net ajax code-behind


【解决方案1】:

假设当您的应用程序运行时,您的 GetAccount 方法可以通过 /Account/GetAccount 访问,您可以使用以下方法:

$.ajax({
  type: 'GET',
  url: '/Account/GetAccount',
  data: { 'username' : 'a-username' },
  dataType: 'json',
  success: function(jsonData) {
    alert(jsonData);
  },
  error: function() {
    alert('error');
  }
});

注意 - 这取决于 jQuery。

这会导致 浏览器/Account/GetAccount 发出请求,就像您通过在 URL 栏中输入 URL 一样,但当然会捕获返回的 json 以在您的客户端中使用侧(javascript)脚本。

如果这返回 404,则值得检查您的路由。

【讨论】:

    猜你喜欢
    • 2011-02-01
    • 2014-03-22
    • 2012-03-06
    • 2012-07-21
    • 1970-01-01
    • 2016-09-24
    • 2013-11-23
    • 2014-07-18
    • 2012-04-29
    相关资源
    最近更新 更多