获取图像的路径

时间:2012-05-31 07:08:05

标签: c# asp.net url path image

大家!

我知道,可能这个问题已被多次提出,但无论如何......

问题是:

我有一个包含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 - no ..

感谢任何帮助, 此致,Maris

1 个答案:

答案 0 :(得分:2)

使用ResolveClientUrl方法代替Server.MapPath