1

みんな!

おそらく何度も質問されたことはわかっていますが、とにかく..

問題は:

2 つのプロジェクト (C# クラス ライブラリと Web プロジェクト) を使用したソリューションがあります。クラス ライブラリ プロジェクトでは、テキスト ボックス コントロールをオーバーライドしたため、検証が組み込まれています。ローカル サーバーではすべて問題なく動作しますが、公開されたプロジェクトをアップロードすると問題が発生します。

コードは次のとおりです。

    [Browsable(true)]
    [Category("Appearance")]
    [DefaultValue("~/images/alert.png")]
    public string AlertImageUrl
    {
        get
        {
            string path = HttpContext.Current.Server.MapPath("~/images/alert.png");
            return GetPropertyValue<string>("AlertImageUrl", path);
        }
        set
        {
            SetPropertyValue("AlertImageUrl", value);
        }
    }

    protected override void Render(HtmlTextWriter writer)
    {
        this.Attributes["onfocus"] = "var objs = this.parentNode.childNodes; for (var i = 0; i < objs.length; i++) {if (objs[i].id == 'imgAlert') { objs[i].style.display = 'none'; } }";
        writer.WriteFullBeginTag("span");
        base.Render(writer);
        if (!_validator.IsValid)
        {
            writer.WriteBeginTag("img");
            writer.WriteAttribute("id", "imgAlert");
            writer.WriteAttribute("runat", "server");
            writer.WriteAttribute("style", "left: -20px; top: 3px;");
            writer.WriteAttribute("src", AlertImageUrl);
            writer.WriteEndTag("img");
        }
        writer.WriteEndTag("span");
    }

画像は App_Themes/Theme_name/images/alert.png にあります AlertImageUrl を正しく取得するには? 奇妙なことに、手動で設定すると正しいパスが返されますが、WriteAttribute - いいえ..

どんな助けでも大歓迎です、よろしく、マリス

4

1 に答える 1

2

ResolveClientUrlの代わりにメソッドを使用しますServer.MapPath

于 2012-05-31T07:25:10.057 に答える