【问题标题】:How to call ASMX webservice from MVC view?如何从 MVC 视图调用 ASMX Web 服务?
【发布时间】:2016-04-18 13:38:31
【问题描述】:

以下是我尝试使用的 WebService 方法-:

    [WebMethod]
    public string HelloWorld()
    {
        return "Hello World";
    }

使用ajax调用来调用这个方法

$.ajax({
    type: "POST",
    url: "/WebServices/WebService1.asmx/HelloWorld",
    data: "{}",
    contentType: "application/json; charset=utf-8",
    success: function (msg) {
        var data = msg.d;
    },
    error: function (msg) {
        alert(msg.responseText);
    }
});

但是每次我得到资源未找到的错误可能是因为我从 MVC 视图调用它,我也尝试将整个 localhost 路径 http://localhost:60005/ 仍然得到资源未找到的错误,谁能给我一个小从 MVC 视图调用 asmx webservice 的例子?

【问题讨论】:

  • 尝试从 view 调用一个 action 方法,然后从控制器 action 调用你的 web 方法
  • 无论是来自 MVC 视图还是 Web 表单页面,甚至是纯 HTML 页面,都没有关系。一旦到达客户端,它就只是 HTML 和 JavaScript。只需确保您的路径在客户端是正确的。
  • 确保在调用 Web 服务时它实际上正在运行。在 Visual Studio 中有一个选项“多个启动项目”,可通过解决方案(右键单击)-> 设置启动项目... -> 多个启动项目。为您的 WebService 项目设置 Action = Start + 您的 WebApplication 项目。

标签: c# ajax asp.net-mvc web-services asp.net-mvc-4


【解决方案1】:

尝试将此行添加到您的 RouteConfig:

routes.IgnoreRoute("{*x}", new { x = @".*\.asmx(/.*)?" });

另外,取消注释您的 asmx Web 服务类中的这一行:

[System.Web.Script.Services.ScriptService]

你有一个很好的教程here

【讨论】:

    猜你喜欢
    • 2013-03-27
    • 1970-01-01
    • 1970-01-01
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    • 2012-10-31
    • 1970-01-01
    相关资源
    最近更新 更多