Пространство имен в C # при использовании Javascript - PullRequest
1 голос
/ 20 июня 2011

Я пытаюсь научить себя AJAX / Web-сервисам, используя C # и javascript. И я думаю, что у меня проблема с пространством имен, судя по тому, что я сделал в Google.

Прежде всего, мой код:

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

namespace SimpleAJAX
{

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

        [WebMethod]
        public string GetServerResponse(string callerName)
        {
            if (callerName == string.Empty)
                throw new Exception("Web Service Exception: invalid argument");

            return string.Format("Service responded to {0} at {1}", callerName, DateTime.Now.ToString());
        }

    }
}

Веб-сервис.

<head id="Head1" runat="server">
    <title>Web Service call from client-side JavaScript</title>

    <script language="javascript" type="text/javascript">
        function SendRequest() {
            MySampleService.GetServerResponse(form1.MyTextBox.value, OnComplete, OnError, OnTimeOut);
        }

        function OnComplete(arg)
        {
            alert(arg);
        }

        function OnTimeOut(arg)
        {
            alert("timeOut has occured");
        }

        function OnError(arg)
        {
            alert("error has occured: " + arg._message);
        }
    </script>

</head>
<body>
    <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server">
            <Services>
                <asp:ServiceReference Path="~/WebServices/MySampleService.asmx" />
            </Services>
        </asp:ScriptManager>
        <div>
            <input type="text" value="" id="MyTextBox" />
            <input type="button" value="Send Request to the Web Service" id="RequestButton" 
                onclick="return SendRequest()" />
        </div>
    </form>
</body>     

Страница aspx.

Взято из (http://www.semenoff.dk/en/Code-Corner/ASP.Net.AJAX/WebService-From-JavaScript.aspx)

)

И когда я запускаю его, я получаю ошибку «MySampleService is undefined». Я точно следовал учебному пособию, но, очевидно, я все еще делаю что-то не так. Маленькая помощь? Спасибо!

Ответы [ 3 ]

2 голосов
/ 20 июня 2011

Вам нужно будет включить ваше имя и фактическое имя класса вашей услуги в вызов:

SimpleAJAX.WebService1.GetServerResponse(form1.MyTextBox.value, OnComplete, OnError, OnTimeOut);

Чтобы увидеть точную структуру прокси JavaScript, сгенерированного ASP.NET для ScriptReference, откройте WebService1.asmx/jsdebug в браузере.

1 голос
/ 20 июня 2011

У вас нет класса с именем "MySampleService". Ваш класс называется WebService1, поэтому вы должны использовать

SimpleAJAX.WebService1.GetServerResponse(form1.MyTextBox.value, OnComplete, OnError, OnTimeOut);
1 голос
/ 20 июня 2011

попробуйте

 function SendRequest() {
            SimpleAJAX.WebService1.GetServerResponse(form1.MyTextBox.value, OnComplete, OnError, OnTimeOut);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...