0

ASP.NET 用に作成された Web アプリのブラウザー プロンプトに改行を追加する次のコードがあります。

RectangleHotSpot rhs = new RectangleHotSpot();
rhs.HotSpotMode = HotSpotMode.Navigate;
rhs.AlternateText = "Line one
Line Two"; //New-line to conform with FF
rhs.NavigateUrl = "my URL";

ImageMap.HotSpots.Add(rhs);

しかし、何らかの理由で「rhs.AlternateText」は次のようにエスケープされます。

「1行目 2行目」

Web ブラウザーでソースを表示するとき。(このサイトもそれをエスケープするため、上にスペースを追加する必要がありました:)

それを防ぐ方法はありますか?

4

2 に答える 2

1

次のようなことを試してください:

    public class RectangleHotSpot : System.Web.UI.WebControls.HotSpot
{
    private string _strAlt;
    public override string AlternateText
    {
        get
        {
            return _strAlt;
        }
        set
        {
            this._strAlt = value;
        }
    }

    public override string GetCoordinates()
    {
        return String.Empty; // You'll need to fill this in.
    }

    protected override string MarkupName
    {
        get { return String.Empty; } // This too.
    }
}

抽象メンバーの一部として GetCoordinates と MarkupName が必要ですが、私は Rectangle Hot Spot クラスに詳しくないので、そこで何を代用するかわかりません。

于 2012-09-30T03:26:18.653 に答える
0

これは、属性の引用符で使用するのが正しい (W3C) 方法であるためです。私はあなたが使用している正確なコントロールに精通していませんが、例については以下を参照してください。

<img src="img/wrong.jpg" alt="This is the wrong way &#013; because the ampersand is not encoded properly for attributes" />

<img src="img/correct.jpg" alt="This is the right way &amp;#013 because the ampersand IS escaped and the browser will read &amp; as just an ampersand plus the code, which is what you want." />
于 2012-09-30T00:48:07.417 に答える