3

.NET 3.5 フレームワークで ASP.NET Web フォームを使用しています。次のような HTML タグでカスタム属性を実現するにはどうすればよいですか。

<HTML lang="en">

共通の継承された基本ページのコード ビハインドでこれを実現したいと考えています。属性値は、ページが読み込まれるたびにセッション値に基づいて動的に設定されます。

後半の追加: 可能であれば、ASP ページのスクリプト タグを変更せずにこれを実現したい

4

8 に答える 8

2

Page クラスの AddParsedSubObject メソッドを使用します。

解析過程で AddParsedSubObject メソッドのパラメータでコントロールオブジェクトを取得できます。

このメソッドを次のようにオーバーライドします...

protected override void AddParsedSubObject(object control)
{
    if (obj is LiteralControl) 
    {
        String html = (obj as LiteralControl).Text;
        if (Regex.IsMatch(html, "<html[^>]*>") == true)
        {
            String newhtml = Regex.Replace(html, "<html[^>]*>", "<html lang=\"en\">");
            base.AddParsedSubObject(new LiteralControl(newhtml));
        }
    }
}

html タグやその他のタグの出力をカスタマイズできます。あなたの助けを願っています!!

于 2009-03-24T14:43:03.533 に答える
2

既存のASP.NET Web ページ グローバリゼーションスキャフォールディングを使用している場合は、代わりにこれを使用します。

@using System.Threading
<html lang="@Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName">
于 2015-09-29T22:56:27.827 に答える
0

Web サイトの国際化を行おうとしているだけなら、.net が提供する組み込みシステムを使用することもできます (それらは美しいからです)。それがあなたのやりたいことですか?または、他の何か?

于 2009-08-16T04:59:38.090 に答える