更改页面名称后,内容页面无法访问控件

时间:2014-09-11 16:30:53

标签: c# asp.net visual-studio-2013

我在VS2013中有一个带有Master Page和一些内容页面的Web应用程序项目。我的主页标题是:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="MasterPage.master.cs" Inherits="MyProject.MasterPage" %>

然后我右键单击解决方案资源管理器中的母版页,然后选择&#34;添加内容页面&#34;。这为我生成了如下内容页面:

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.Master" AutoEventWireup="True" CodeBehind="WebForm1.aspx.cs" Inherits="MyProject.WebForm1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContentPlaceHolder" runat="server">
</asp:Content>

我所做的就是右击这个&#34; WebForm1&#34;在解决方案资源管理器中,将名称更改为&#34;登录&#34;

这会将内容页面中的标题更改为:

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.Master" AutoEventWireup="True" CodeBehind="Login.aspx.cs" Inherits="MyProject.WebForm1" %>

看起来不错,但它仍然显示Inherits="MyProject.WebForm1",尽管它不再是内容页面的名称。

所以我想,&#34;好的我可以将Inherits="MyProject.WebForm1"更改为Inherits="MyProject.Login"。大错,因为现在我无法在我的代码隐藏文件中引用TextBox,Label等任何控件。我得到了一系列错误:

The name 'controlname' does not exist in the current context

所以看起来我的页面无法再正确找到控件的类。

我尝试删除Login.aspx.designer.cs,然后转到Project -> Convert to web application重新创建,但这不起作用。

长话短说,如果我使用Inherits="MyProject.WebForm1"我的代码工作正常,尽管我的页面现在被称为Login。我也尝试过所有其他页面,这是同一个故事。

这是某种错误吗?或者我的添加内容页面的方法是什么?

1 个答案:

答案 0 :(得分:1)

最有可能在你的代码背后有这个:

namespace MyProject
{
    public class WebForm1

这是您的网页根据网站项目继承的内容,而这应该是“Inhertis”属性中的内容。请注意,那里有完整的类名,包括名称空间。

因此,如果要重命名页面文件,请确保重命名该类。 Visual Studio不会自动执行此操作。