C# 无效标记“;”类、结构或接口成员声明中的

C# 无效标记“;”类、结构或接口成员声明中的,c#,asp.net,webforms,C#,Asp.net,Webforms,我正在尝试使用web控件在ASP.NET webforms中创建用户登录表单。编译代码时,我在designer类中遇到了这个错误。登录表单的代码如下所示: <form class="cd-form"> <p class="fieldset"> <label class="image-replace cd-email" for="signin-email">Username</label> <asp:Te

我正在尝试使用web控件在ASP.NET webforms中创建用户登录表单。编译代码时,我在designer类中遇到了这个错误。登录表单的代码如下所示:

<form class="cd-form">
    <p class="fieldset">
        <label class="image-replace cd-email" for="signin-email">Username</label>
        <asp:TextBox class="full-width has-padding has-border" ID="signin-email" type="email" placeholder="E-mail" runat="server"></asp:TextBox>
        <span class="cd-error-message">Error message here!</span>
    </p>

    <p class="fieldset">
        <label class="image-replace cd-password" for="signin-password">Password</label>
        <asp:TextBox class="full-width has-padding has-border" ID="signin-password" type="text" placeholder="Password" runat="server"></asp:TextBox>
        <a href="#0" class="hide-password">Hide</a>
        <span class="cd-error-message">Error message here!</span>
    </p>

    <p class="fieldset">
        <input type="checkbox" id="remember-me" checked>
        <label for="remember-me">Remember me</label>
    </p>

    <p class="fieldset">
      <asp:Button ID="btn_login" runat="server" value="Login" OnClick="btn_login_Click1" />
    </p>
</form>
为什么我会犯这个错误

编辑:

这是设计器代码

public partial class main {

        /// <summary>
        /// signin-email control.
        /// </summary>
        /// <remarks>
        /// Auto-generated field.
        /// To modify move field declaration from designer file to code-behind file.
        /// </remarks>
        protected global::System.Web.UI.WebControls.TextBox signin-email;

        /// <summary>
        /// signin-password control.
        /// </summary>
        /// <remarks>
        /// Auto-generated field.
        /// To modify move field declaration from designer file to code-behind file.
        /// </remarks>
        protected global::System.Web.UI.WebControls.TextBox signin-password;

        /// <summary>
        /// btn_login control.
        /// </summary>
        /// <remarks>
        /// Auto-generated field.
        /// To modify move field declaration from designer file to code-behind file.
        /// </remarks>
        protected global::System.Web.UI.WebControls.Button btn_login;
    }

在C中不允许在变量名中使用破折号。例如,您可以通过为asp:TextBox指定signin email作为ID来实现。自动生成的代码将在C代码中使用这些值


重命名字段以使用下划线,而不是破折号。

在C中不允许在变量名中使用破折号。例如,您可以通过将signin email指定为asp:TextBox的ID来执行此操作。自动生成的代码将在C代码中使用这些值



重命名字段以使用下划线,不是破折号。

您可以添加带有错误和错误消息的屏幕截图吗?您可以发布designer.cs文件的相关部分吗?从ID属性中删除-它们应该是不允许破折号的常规.net标识符。@AhmedMujtaba您原来的问题缺少设计器的相关代码,这使得诊断很困难。有些用户没有耐心等待您编辑和更正问题,或者根本不相信您会这样做。这是否是合理的行为是另一回事。这一错误是否微不足道并不重要。并非每个开发人员都从内存中了解完整的语言规范。我当然不会。这是一个完全有效的问题。您可以添加带有错误和错误消息的屏幕截图吗?您可以发布designer.cs文件的相关部分吗?从ID属性中删除-它们应该是不允许破折号的常规.net标识符。@AhmedMujtaba您的原始问题缺少设计器中的相关代码,这使得诊断很困难。有些用户没有耐心等待您编辑和更正问题,或者根本不相信您会这样做。这是否是合理的行为是另一回事。这一错误是否微不足道并不重要。并非每个开发人员都从内存中了解完整的语言规范。我当然不会。这是一个完全有效的问题,这很有趣,为什么design generator不能以某种方式逃避这个问题:-变量名冲突。名称冲突可能会发生,而使用标准名称我不这么认为。样品或者可能我不太理解你,例如,当两个元素具有相同的id时。在第一个注释中,我的意思是设计者可以将减号字符更改为另一个符号,它看起来是减号,但对于标识符来说是有效的符号。特殊unicode符号中的一些东西很有趣,为什么design generator不能以某种方式避免这种情况:-变量名冲突。名称冲突可能会发生,而使用标准名称我不这么认为。样品或者可能我不太理解你,例如,当两个元素具有相同的id时。在第一个注释中,我的意思是设计者可以将减号字符更改为另一个符号,它看起来是减号,但对于标识符来说是有效的符号。来自特殊unicode符号的东西