従来、私は通常のasp.net Webサイト([ファイル]> [新しいWebサイト]を使用して作成)を使用します。最近、本格的なプロジェクト([ファイル]>[新しいプロジェクト]>[ASP.net Webアプリケーション]を使用して作成)を使用することを選択しました。
私は何年も問題なく同じカスタムコントロールを使用しています。新しいWebサイトを作成し、CustomControls.csファイルをApp_Codeディレクトリに配置し、web.configファイルに1行追加するだけで、すべてのカスタムサーバーコントロールを使用できます。Webプロジェクトでそれを試してみると、次のエラーが発生します
エラー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サイトでは機能するが、Webプロジェクトでは機能しない理由はありますか?
みんな、ありがとう。