繁体   English   中英

尝试更改默认情况下使用Asp.Net WebForms模板提供的Login.aspx页的母版时发生运行时错误

[英]Runtime error when attempting to change the Master Page for the Login.aspx page given by default with the Asp.Net WebForms template

我使用WebForms模板在Visual Studios 2015中启动了Asp.Net WebForms项目。 但是,我现在想将母版页从默认(〜/ Site.Master)更改为我从下载的Bootstrap模板创建的母版页。

下载的模板可以在我创建的Webforms页面上找到,但是在尝试将其与Login页面一起使用时出现此错误:

附加信息:必须将类型为“文本框”的控件“电子邮件”放置在带有runat = server的表单标记中。

我试图在不使用母版页的情况下创建新页,但继续出现错误。 我检查的第一件事是用于电子邮件的教科书,但确实有runat =“ server”。 这是代码片段:

<div class="form-group" runat="server">
     <asp:Label runat="server" AssociatedControlID="Email" CssClass="col-md-2 control-label">Email</asp:Label>
     <div class="col-md-10">
          <asp:TextBox runat="server" ID="Email" CssClass="form-control" TextMode="Email" />
          <asp:RequiredFieldValidator runat="server" ControlToValidate="Email" CssClass="text-danger" ErrorMessage="The email field is required." />
     </div>
 </div>

任何帮助将不胜感激。 我已经检查了几个问题,但是大多数问题涉及在后面的代码中动态更改MasterPage(顺便说一句,这不是我要寻找的解决方案)。 谢谢。

如错误所述,您应该将控件放置在ContentPlaceHolder元素内。 请参阅MSDN文档以获取相同的https://msdn.microsoft.com/zh-cn/library/wtxbf3hh.aspx

在您的母版页中,您有一个内容contentplaceholder例如

    <asp:contentplaceholder id="cp1" runat="server">
    </asp:contentplaceholder>

在您的“ Login页面中,包括包含MasterPageFile属性的母版页

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" ...

<asp:Content ID="Content1" ContentPlaceHolderID="cp1" Runat="Server">
<asp:TextBox runat="server" ID="Email" CssClass="form-control" TextMode="Email" />
</asp:Content>

我从这个链接中找到了答案:

*母版页和主题

您不能直接将ASP.NET主题应用于母版页。 如果将主题属性添加到@ Master指令,则该页面在运行时将引发错误。 但是,在以下情况下,主题将应用于母版页:如果在内容页面中定义了主题。 母版页是在内容页的上下文中解析的,因此内容页的主题也适用于母版页。 如果将站点整体配置为通过在页面元素(ASP.NET设置架构)元素中包含主题定义来使用主题。 有关更多信息,请参见ASP.NET主题和皮肤。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM