Вызов веб-службы ASMX с использованием Javascript и AJAX Control ToolKit в Visual Studio 2010 - PullRequest
0 голосов
/ 20 декабря 2011

Я пытаюсь вызвать веб-службу ASMX с помощью JavaScript и AJAX Control Toolkit в Visual Studio 2010. Я получаю сообщение об ошибке, так как SampleWebService не определен в консоли Fire Fox Error Console. Раньше это работало довольно хорошо в VS 2008, но то же самое не работает в VS 2010 Есть ли какие-либо изменения в способе вызова веб-службы ASMX с использованием AJAXControl Toolkit и JavaScript в VS 2010.?

Я использую VS 2010 Premium с SP1.

Я также добавил ссылку на сервис для ASMX.

После кода обслуживания ASMX:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class SampleWebService : System.Web.Services.WebService {

    public SampleWebService () {

        //Uncomment the following line if using designed components 
        //InitializeComponent(); 
    }

    [WebMethod]
    public string HelloWorld() {
        return "Hello World = "+DateTime.Now.ToString();
    }

}

Код JavaScript:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
        <Services>
            <asp:ServiceReference Path="~/SampleWebService.asmx" />
        </Services>
    </asp:ToolkitScriptManager>


    <input id="btn" type="button" value="Click" onclick="javascript:fnBtnClick();" />
    <script type="text/javascript">
        function fnBtnClick() {
            alert("fnBtnClick");
            SampleWebService.HelloWorld(onSuccess,onFailure);
        }

        function onSuccess(result) {
            alert("onSuccess = "+result);
        }
        function onFailure(result) {
            alert("onFailure = " + result);
        }
    </script>
</asp:Content>

1 Ответ

0 голосов
/ 21 декабря 2011

Я добавил ScriptHandlerFactory, как упомянуто в этой ссылке

веб-сервис asmx, возвращающий xml вместо json в .net 4.0

и это работает.

Я не знаю, почему этого не было. Если кто-то может пролить свет на это, это будет полезно для лучшего понимания.

...