传统上,我使用常规的 asp.net 网站(使用文件 > 新网站创建)。最近,我选择完成一个成熟的项目(使用文件 > 新项目 > ASP.net Web 应用程序创建)。
多年来,我一直在使用相同的自定义控件,没有发生任何事故。我只需创建新网站,将我的 CustomControls.cs 文件放在 App_Code 目录中,在 web.config 文件中添加一行,我就可以使用我的所有自定义服务器控件。当我尝试使用我的网络项目时,我收到以下错误
错误 225 在全局命名空间中找不到类型或命名空间名称“DTF”(是否缺少程序集引用?) D:[驱动器上的项目位置]\AgIn02.aspx.designer.cs
我的自定义控制文件看起来像这样
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using AjaxControlToolkit;
using System.Text;
using System.IO;
using System.Text.RegularExpressions;
namespace DTF.Web.UI
{
public class IntOnlyBox : TextBox
{
private RequiredFieldValidator rfv;
private ValidatorCalloutExtender vce;
private AjaxControlToolkit.FilteredTextBoxExtender ftb;
private string strInvalidMessage = "";
private string strValidationGroup = "";
public string ValidationGroup
{
get
{
return strValidationGroup;
}
set
{
strValidationGroup = value;
}
}
public string InvalidMessage
{
get
{
return strInvalidMessage;
}
set
{
strInvalidMessage = value;
}
}
protected override void OnInit(EventArgs e)
{
rfv = new RequiredFieldValidator();
rfv.ControlToValidate = this.ID;
rfv.ErrorMessage = "<span style=\"color:black\"><b>Required Field Missing</b><br />" + this.InvalidMessage + "</span>";
//rfv.ErrorMessage = this.InvalidMessage;
rfv.ID = "rfv" + this.ID;
rfv.Display = ValidatorDisplay.None;
rfv.SetFocusOnError = true;
rfv.EnableClientScript = true;
rfv.ValidationGroup = this.ValidationGroup;
vce = new AjaxControlToolkit.ValidatorCalloutExtender();
vce.ID = "vce" + this.ID;
vce.TargetControlID = "rfv" + this.ID;
vce.Width = 300;
ftb = new FilteredTextBoxExtender();
ftb.ID = "ftb" + this.ID;
ftb.TargetControlID = this.ID;
ftb.FilterType = FilterTypes.Numbers;
Controls.Add(rfv);
Controls.Add(vce);
Controls.Add(ftb);
}
protected override void Render(HtmlTextWriter w)
{
//w.Write(this.InvalidMessage);
base.Render(w);
rfv.RenderControl(w);
vce.RenderControl(w);
ftb.RenderControl(w);
}
}
}
我的 web.config 条目看起来像这样(在页面/控件区域中)
<add tagPrefix="DTF" namespace="DTF.Web.UI" />
我已经尝试了我能想到的一切来让它工作和编译。自定义服务器控件的智能感知工作正常,它根本无法编译。
我还收到错误“基类包含字段'blanro',但其类型(DTF.DateBoxFull)与控件类型(DTF.DateBoxFull)不兼容。”
知道如何解决这个问题,以及为什么它可以在常规的 asp.net 网站上工作,但不能在 web 项目中工作?
感谢大家。