私のサイト構造は非常にシンプルで、1 つのマステページと多数のページがあります。ただし、マスターページは非常に高度であり、ページからマスターページの特定の側面を制御できる必要があります。
これらのディレクティブを aspx ファイルに入力して、コード ビハインド ファイルが乱雑にならないようにしたいと考えています。
私の考えは、SeoDirective などのさまざまな「ディレクティブ」ユーザー コントロールを作成することでした。
using System;
public partial class includes_SeoDirective : System.Web.UI.UserControl
{
public string Title { get; set; }
public string MetaDescription { get; set; }
public string MetaKeywords { get; set; }
}
デフォルトのマステページ設定をオーバーライドする必要があるページには、このディレクティブを含めます。
<offerta:SeoDirective runat="server" Title="About Us" MetaDescription="Helloworld"/>
私のマスターページで、ディレクティブがあるかどうかを確認します:
includes_SeoDirective seo = (includes_SeoDirective) ContentPlaceHolder1.Controls.Children().FirstOrDefault(e => e is includes_SeoDirective);
(Children() は拡張機能なので、ControlCollection で Linq を操作できます)
今私の質問に:私はこの解決策が少し肥大化しているかもしれないことに満足していませんか?
aspx ファイルでこれらのタグを作成できる代替ソリューションを探しています。
ページを拡張するトリックを見てきましたが、プロジェクトをコンパイルするためにVS構成を変更する必要があるため、そのソリューションを削除しました。