0

AJAX Toolkit の AutoCompleteExtender を使用して、データベースからデータを取得するテキスト ボックスにオートコンプリート機能を実装しようとしています。テキスト ボックスとコントロールは、aspx ページ (updatepanel を含む) にネストされたユーザー コントロールにあります。スクリプト マネージャーはマスター ページにあります。

<asp:TextBox ID="txtTowelManufacturer" runat="server" Width="200px"></asp:TextBox>
<ajaxToolkit:AutoCompleteExtender ID="txtTowelManufacturer_AutoCompleteExtender" 
    runat="server" MinimumPrefixLength="1" ServiceMethod="GetCompletionList"
    TargetControlID="txtTowelManufacturer" UseContextKey="True">
</ajaxToolkit:AutoCompleteExtender>

[System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()]
public static string[] GetCompletionList(string prefixText, int count, string contextKey)
{
    ...
}

Cassini を使用して開発ボックスでページを実行すると、エクステンダーを使用すると 401 Unauthorized エラーが生成され、それ以上のデバッグ情報はありません。投稿は正しく、応答は空です:

{"Message":"There was an error processing the request.","StackTrace":"","ExceptionType":""}

ServicePath を直接または相対パスを使用して手動で指定すると、同じエラーが発生します。間違ったパスを指定すると、404 Not Found エラーが正しく生成されるため、正しい場所を参照していることがわかります。

この状況で認証エラーが発生する理由がわかりません。私たちは Windows 認証を使用しておらず、ドメインをまたがっていません。また、401 の問題が何度も提起されていますが、提示された解決策のどれも多くの人にとってはうまくいきませんでした。

試してみるためのリードをいただければ幸いです。

4

1 に答える 1

1

メソッドGetCompletionList()をユーザー コントロールのascx.csファイルからページのaspx.cs.

于 2013-02-08T16:33:36.057 に答える