大家!
我知道,可能这个问题已被多次提出,但无论如何......
问题是:
我有一个包含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
答案 0 :(得分:2)
使用ResolveClientUrl
方法代替Server.MapPath