Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
控制长度限制';ASP.Net中的s Id_Asp.net - Fatal编程技术网

控制长度限制';ASP.Net中的s Id

控制长度限制';ASP.Net中的s Id,asp.net,Asp.net,asp.net web应用程序中控件id的字符限制是多少 我有一个使用随机函数生成控件id的场景。这是数据类型字符串的控件属性。因此,您可以添加一个将采用的值到字符串变量中。这是数据类型字符串的控件属性。因此,您可以添加一个将采用的值到字符串变量中。在查看时偶然发现了这一点关于生成随机ID作为额外的SPAMBot挫败机制的信息/想法,我想我会回答 正如Darin指出的,虽然不是ASP.NET特有的,但以下先前发布的问题的答案表明,在所有现代浏览器中,100万个字符已成功用作HTML ID: 下

asp.net web应用程序中控件id的字符限制是多少


我有一个使用随机函数生成控件id的场景。

这是数据类型字符串的控件属性。因此,您可以添加一个将采用的值到字符串变量中。

这是数据类型字符串的控件属性。因此,您可以添加一个将采用的值到字符串变量中。

在查看时偶然发现了这一点关于生成随机ID作为额外的SPAMBot挫败机制的信息/想法,我想我会回答

正如Darin指出的,虽然不是ASP.NET特有的,但以下先前发布的问题的答案表明,在所有现代浏览器中,100万个字符已成功用作HTML ID:

下面在4.0应用程序池中运行的quick DOTNET测试页面证实了ASP.NET可以很好地处理此问题,尽管如此,加载页面并发回可能需要一分钟的时间。请记住,“name”属性也具有“id”值,因此它实际上是双倍的

当ID接近1000万个字符时,我遇到了奇怪的浏览器行为,但是如果您正在考虑使用这么大的ID,您可能需要重新考虑一些事情;)


StringBuilder controlID=新的StringBuilder();
int controlIDLength=1000000;//一个美丽的角色!!!
无效页面_Init(对象发送方,事件参数e)
{
//创建一个非常长的控件ID
对于(int n=1;n



在寻找关于生成随机ID作为额外的垃圾邮件阻止机制的信息/想法时,我偶然发现了这一点,并认为我会回答

正如Darin指出的,虽然不是ASP.NET特有的,但以下先前发布的问题的答案表明,在所有现代浏览器中,100万个字符已成功用作HTML ID:

下面在4.0应用程序池中运行的quick DOTNET测试页面证实了ASP.NET可以很好地处理此问题,尽管如此,加载页面并发回可能需要一分钟的时间。请记住,“name”属性也具有“id”值,因此它实际上是双倍的

当ID接近1000万个字符时,我遇到了奇怪的浏览器行为,但是如果您正在考虑使用这么大的ID,您可能需要重新考虑一些事情;)


StringBuilder controlID=新的StringBuilder();
int controlIDLength=1000000;//一个美丽的角色!!!
无效页面_Init(对象发送方,事件参数e)
{
//创建一个非常长的控件ID
对于(int n=1;n



可能重复的字符没有实际的最大值,但有一个HTML规范规定允许使用哪些字符。所以要小心你的随机函数。更不用说随机性并不意味着唯一性,HTML规范规定ID必须是唯一的。我正在为其添加时间戳以实现唯一性。这可能有助于更多地了解您试图实现的目标。与每次调用随机函数相比,可能有更好的方法生成唯一ID,这只会降低多个ID的可能性。我正在创建一个屏幕,其中将显示好友列表,最终用户可以继续添加好友。我需要添加标签和文本框。正如@Curt所说,随机数,甚至时间戳,可能不是唯一的。我使用
Guid.NewGuid().ToString().Replace('-','''.')
(附加到一些前缀)来表示(几乎可以保证!)唯一的控件ID。可能的重复没有实际的最大值,但有一个HTML规范规定了允许的字符。所以要小心你的随机函数。更不用说随机性并不意味着唯一性,HTML规范规定ID必须是唯一的。我正在为其添加时间戳以实现唯一性。这可能有助于更多地了解您试图实现的目标。与每次调用随机函数相比,可能有更好的方法生成唯一ID,这只会降低多个ID的可能性。我正在创建一个屏幕,其中将显示好友列表,最终用户可以继续添加好友。我需要添加标签和文本框。正如@Curt所说,随机数,甚至时间戳,可能不是唯一的。我使用
Guid.NewGuid()。
<script language="c#" runat="server">

    StringBuilder controlID = new StringBuilder();
    int controlIDLength = 1000000; // ONE MEEEEEEELLLLLION CHARACTERS!!!

    void Page_Init(object sender, EventArgs e)
    {
        // Create a really really long control ID
        for(int n = 1; n < controlIDLength; n++)
        {
            controlID.Append("A");
        }

        var TestControl = new System.Web.UI.WebControls.TextBox();
        TestControl.ID = controlID.ToString();
        ControlPlaceholder.Controls.Add(TestControl);
    }

    void Page_Load(object sender, EventArgs e)
    {
        ControlIDLengthLiteral.Text = "ControlID Length: " + controlIDLength.ToString();
        if (IsPostBack)
        {
            ControlValue.Text = "Value Received: " + ((TextBox)PageForm.FindControl(controlID.ToString())).Text;
        }
    }

</script>
<html>
    <head>
        <title>Maximum ID Length Test</title>
    </head>
    <body>
        <p>
            <asp:Literal ID="ControlIDLengthLiteral" runat="server" /><br />
            <asp:Literal ID="ControlValue" runat="server" />
        </p>
        <form id="PageForm" runat="server">
            <asp:PlaceHolder ID="ControlPlaceholder" runat="server" /><br />
            <input type="submit" value="Submit" />
        </form>
    </body>
</html>