我想强制控件的使用者在将控件放在页面上时为属性赋值.
在VisualStudio中,当您在用户控件上创建没有属性SRC或ALT的标记时,它会加下划线,表示SRC和ALT是必需属性.我假设这只是编辑器对标记的一种特殊处理,但有没有办法为控件定义类似的行为?
如果控件具有如下定义的属性:
public object AProperty { get { if (ViewState["AProperty"] == null) { throw new Exception("AProperty is a required property of this control"); } return ViewState["AProperty"]; } set { ViewState["AProperty"] = value; } }
有没有办法使用自定义属性或其他可以在设计器中标记的东西?
您可以使用Microsoft.Build.Framework.Required属性.这将需要在构建时设置一个值,否则构建将失败,并显示一条消息,指示该属性没有值.
我不相信有一个属性来指示特定标记必须包含在服务器控件中(或者至少我没有在System.Web.UI.HtmlControl.Image类中看到任何这样的属性).我相信litle下划线是IDE的HTML验证的一部分.
您始终可以创建一个自定义属性,如果缺少某个属性,则会抛出警告