asp.net - 在设计 View 中根据需要标记控件属性

标签 asp.net visual-studio custom-controls

我想强制控件的使用者在将控件放置在页面上时为属性指定值。

在 VisualStudio 中,当您在用户控件上创建不带属性 SRC 或 ALT 的 < img > 标记时,它会带有下划线,表示 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 类上没有看到任何此类属性) 。我相信小下划线是 IDE 的 HTML 验证的一部分。

您始终可以创建一个自定义属性,如果缺少属性,该属性会引发警告

关于asp.net - 在设计 View 中根据需要标记控件属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/787473/

相关文章:

c++ - 类模板的成员模板函数上的enable_if

c++ - Python OpenCv 构建未在命令行中检测到 visual studio 2019

c# - 在.NET中,如何制作不显示在windows窗体上的自定义控件?

asp.net - 跨页发布。在 Asp.net 中使用 Previous Page 是一种好习惯吗?

asp.net - 友好的 URL 和查询字符串

asp.net - 如何在一个asp.net页面中处理多个表单

javascript - 如何使用自定义控件在谷歌地图中获取用户输入?

asp.net - 从后面的代码中添加文本框服务器控件?

c++ - VS2010 "Framework and References"与 "Linker > Input"

wpf - DatePicker 内的自定义 WPF 日历