我有一个非常简单的网站结构,一个母版页和一堆页面。母版页虽然相当先进,但我需要从页面中控制母版页的某些方面。
我希望能够在 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 配置以使项目编译,所以我放弃了该解决方案。