クライアント側から呼び出したいので、vb.net 4.0 Web アプリ (または Web サイト... どれかわからない - 重要ですか?) で scriptservice を作成しました。名前空間が認識されないというクライアント エラーが発生します (以下のコードの HomepageService)。プロジェクトで「ルート名前空間」として構成された名前で修飾しようとしましたが、jsはその名前空間も認識しないと言います。
このアプリは古いものです。最近 dotnet 2.1 から 4.0 に変換しました。
HomepageServices.asmx.vb で System.Web.Extensions をインポートしようとすると、Visual Studio は、参照の下のスタジオにリストされているにもかかわらず、それを認識しないと言っているため、次の関連トピックを見つけました。 .
[System.Web.Extensions アセンブリを解決できません][1]
そのトピックにフォローアップの質問を投稿しようとしましたが、回答の指示に従ってみましたがうまくいきませんでした (プロジェクト > プロパティ > アプリケーションに「ターゲット フレームワーク」がありません)。フォローアップの質問をすることは許可されていないと思いますか?
さまざまなサイトを調べて指示に従いました。例を次に示します 。 http://www.asp.net/ajax/documentation/live/tutorials/ConsumingWebServicesWithAJAXTutorial.aspx
私のサイトのルートフォルダーにある HomepageService.asmx の内容は次のとおりです。
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel
Imports System.Collections.Generic
<System.Web.Services.WebService(Namespace:="http://localhost/appname")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
<System.Web.Script.Services.ScriptService()> _
Public Class HomepageService
Inherits System.Web.Services.WebService
Shared _rand As Random = New Random(Environment.TickCount)
<WebMethod()> _
Public Function Test(ByVal s As String) As Integer
Return _rand.Next(0, 120)
End Function
End Class
マスター ページのスニペット:
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="Scriptmanager1" runat="server" EnablePageMethods="true">
<Scripts>
<asp:ScriptReference Path="CallWebServiceMethods.js" />
</Scripts>
<Services>
<asp:ServiceReference Path="HomepageService.asmx" />
</Services>
</asp:ScriptManager>
そして私のページの上部に私はjsをインポートします:
PageRequestManager.js:
HomepageService.set_defaultSucceededCallback(
OnLookupComplete);
HomepageService.set_defaultFailedCallback(
OnError);
function OnLookup() {
HomepageService.Test(stb.value);
}
function OnLookupComplete(result, userContext) {
// userContext contains symbol passed into method
var res = document.getElementById("_resultLabel");
res.innerHTML = userContext + " : <b>" + result + "</b>";
}
function OnError(result) {
alert("Error: " + result.get_message());
}
私のweb.configは混乱していますが、喜んで投稿します...