gpt4 book ai didi

c# - 如果设置了 MasterType,如何使用自动生成的 Master 属性修复命名空间问题

转载 作者:太空狗 更新时间:2023-10-29 23:42:35 24 4
gpt4 key购买 nike

在遇到这个问题数周后,我终于决定寻求以下问题的解决方案:

在.aspx页面中可以设置

<%@ MasterType VirtualPath="~/Mastername.master" %>

这会导致在 .aspx.designer 中自动生成属性

public new Mastername Master {
get {
return ((Masternamee)(base.Master));
}
}

工作得很好。但是,如果我在 .aspx 文件中进行更改,该属性将自动生成新的,如下所示:

public new NAMESPACE1.Mastername Master {
get {
return ((NAMESPACE1.Mastername)(base.Master));
}
}

之后将无法进行编译,因为无法在给定的命名空间中解析 MasterPage 的类。母版页将 NAMESPACE1 作为命名空间。

每个内容页都有相同的 NAMESPACE1。自动生成的属性试图在 NAMESPACE1.NAMESPACE1 中查找母版页类,但由于不存在,该类将失败。当然我可以删除第一个 NAMESPACE1。使应用程序再次可编译,但几乎每次我在 .aspx 文件中进行更改时都这样做很糟糕。

有没有办法避免这个问题?我能想到的唯一方法是忽略自动生成的属性,并在每次我想访问母版页时进行显式转换。

编辑:我使用的是 Visual Studio 2008 Professional SP1。

最佳答案

出于某种原因,设计者认为母版页定义在命名空间 NAMESPACE1 中,因此查看母版页定义(和代码背后)以检查其命名空间是否未被修改(可能是意外) .

如果没有明显的问题,可能需要在所有文件(*.cs、*.aspx、*.master 等)中搜索 NAMESPACE1

(这是使用 VCS 会有所帮助的地方——您可以检查更改历史记录。)

关于c# - 如果设置了 MasterType,如何使用自动生成的 Master 属性修复命名空间问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1998931/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com