私はWebControlから継承したカスタムコントロールを書きました。 (注:ユーザーコントロールではありません)。カスタムコントロールをApp_Codeに配置する必要がありますか?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
namespace Taopi.WebComponents
{
public class RatingLabel : WebControl
{
public RatingLabel()
: base("span")
{ }
//...
私は/App_Code
でそれを配置し、Webページ上では、次のように登録して使用されます。
<%@ Register TagPrefix="uc" Namespace="Taopi.WebComponents" %>
...
<uc:RatingLabel Rating='<%# Eval("rating") %>' runat="server" />
私は私がセレイテッド型のフォルダです/Components
にRatingLabelを移動するまで、彼らはうまく実行します。ウェブサイトを実行しようとすると、「不明なサーバータグuc:RatingLabel」というエラーが表示されます。
私は登録が間違っていると思いますので、変更が必要ですか?カスタムコントロールをApp_Codeに配置する必要がありますか?
私は別の質問があります。通常、カスタムコントロールはどこに配置しますか(外部DLLの参照を除く)? 「提案された」場所はありますか?
あなたの洞察をお寄せいただきありがとうございます。私が書いているウェブサイトは小さいので、別のプロジェクトを作成するのはあまりに面倒です。カスタムコントロールをApp_Codeに配置する必要があるので、少なくとも2つのフォルダ/ App_Code/WebControlsを作成して、カスタムコントロールを配置し、コードビハインドで必要なクラスを配置する/ App_Code/Businessを作成することをお勧めします。 – Gqqnbig
はい、それはそれをより細かく保つでしょう。しかし、「クラスライブラリ」プロジェクトを追加するのは非常に簡単です(ファイル/追加/新規プロジェクト - クラスライブラリタイプを選択し、既存のプロジェクトから参照を追加すると、このプロジェクトを他のWebサイトからも参照できます)。 –