【问题标题】:Page which has master does not work with or without <form runat=server> tag具有 master 的页面在有或没有 <form runat=server> 标签的情况下都不起作用
【发布时间】:2012-06-18 14:27:55
【问题描述】:

我尝试发布 C#/ASP.NET 页面并收到以下错误消息:

控件 XXX 必须放在带有 runat=server 的表单标签内

当我添加&lt;form runat="server"&gt; 标签时,我收到以下错误:

一个页面只能有一个服务器端表单标签。

我知道我的母版页具有runat=server 表单标签,并且内容包含在该标签中。我还看到错误似乎发生在

c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\a05ad405\1aeb0277\App_Web_lgjjhruj.3.cs:0

我想这是一个临时文件?

我的问题是,有没有人遇到过类似的错误,是如何解决的?

【问题讨论】:

  • 能否贴一些示例代码,可能表单标签和内容占位符的位置不太正确。
  • 删除所有临时文件并重新发布后通过。看起来这只是一个缓存页面问题。

标签: c# asp.net entity-framework


【解决方案1】:

在母版页中只保留一个 从内容页面中删除所有表单标签, 以及来自内容页面的头部和身体标签。

最重要的是,将所有控件保留在内容占位符内,这些控件将在表单标签内呈现。

在所有 asp 控件中将 run at server 放在服务器上。

【讨论】:

    【解决方案2】:

    您的内容页面(使用您的母版页)中是否有另一个表单?您应该有一个仅在您的母版页中在服务器上运行的表单。在您的项目中搜索 (ctrl + shift + f)

    【讨论】:

    • 不,母版页中只有一个,当我将一个放在内容页中时,我得到第二个错误。当我删除它时,我得到了第一个错误。
    【解决方案3】:

    检查您的 MasterPage 并确保所有带有 runat="server" 的控件都包含在 &lt;form runat="server"&gt; 元素中。

    【讨论】:

    • 出于这个原因,我将
      作为最外层元素。
    猜你喜欢
    • 2012-03-11
    • 1970-01-01
    • 2013-12-03
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    • 2014-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多