0

asp.net 4、C#、VS 2010 を使用しています。WebControl をパラメーターとして持つ Web サービス メソッドを呼び出すことで問題に直面しています。

/// <summary>
/// Summary description for FormsViews
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]

public class FormViews : System.Web.Services.WebService
{
    [WebMethod]
    public void SetCaption(System.Web.UI.WebControls.Button bt)
    {
        //Code...
    }
}

エラーなしでコンパイルされます。実行時に次のメッセージが表示されます。

名前空間 'namespace' の XML 要素 'EnableTheming' は、現在のスコープに既に存在します。XML 属性を使用して、要素の別の XML 名または名前空間を指定します。

WebService が WebControl を受け入れない理由と、この問題の処理方法を説明してください。

4

1 に答える 1

0

Webサービスは、シリアル化できず、優れたWebサービス設計ではビューやユーザーインターフェイスを直接操作しないため、WebControlを受け入れません。ビューのロジックは、通常のビジネスレイヤーではなく、ビューに残す必要があります。ビューまたはWebページで言語サポートを処理する一般的な方法は、ページがサポートする言語を示すWebサービスに要求を行い、ラベルのリストをキーと値のペアとして返すことです。キーはコントロールのIDであり、値はコントロールに表示されるものです。これは、Webページで多くのAjaxを使用している場合にのみ必要です。サーバーでページをレンダリングするだけの場合は、サーバーでレンダリングするときにコントロールに正しい言語を入力できます。これを行う方法について説明しているMSDNの記事を次に示します。

于 2012-09-19T13:01:36.530 に答える