【问题标题】:C# App_Data class not inherited by aspx - inherits attribute questionC# App_Data 类不被 aspx 继承 - 继承属性问题
【发布时间】:2011-05-02 19:26:41
【问题描述】:

我已经尝试解决这个问题一段时间了,即使有很多谷歌搜索结果,我收到的错误消息也无法解决。我认为我正在做我应该做的。

VS2010,我在 App_Data 中创建了一个 common.cs。 common.cs 的内容是所有页面都会使用的函数。据我所知,这是在多个页面之间共享代码隐藏代码的正确方法。

App_Data\common.cs

namespace nprah
{
    public class BasePage : System.Web.UI.Page
    {
    }
{

鱼溪.aspx.cs

namespace nprah
{
    public partial class Fishck : BasePage
    {
    }
}

鱼溪.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="fish-creek.aspx.cs" Inherits="nprah.BasePage" %>  

如果我正确理解了 Inherits 属性,那么它确实需要包含 NameSpace.ClassName,我的就是这样。见:http://support.microsoft.com/kb/312311

当我运行此代码时,它会产生以下输出:

编译器错误消息:ASPNET:确保此代码文件中定义的类与“继承”属性匹配,并且它扩展了正确的基类(例如 Page 或 UserControl)。

来源错误:

第 11 行:{
第 12 行:
第 13 行:公共部分类 Fishck:BasePage
第 14 行:{
第 15 行:

Visual Studio 在设计期间未显示任何错误。您可以提供的任何指导将不胜感激。提前致谢。

【问题讨论】:

  • 可能是错字,但您的 aspx 标头显示代码隐藏文件是“fish-creek.aspx.cs”,但您的代码 sn-p 显示“fishck.aspx.cs”
  • 是的,文件名只是错字

标签: c# asp.net class inheritance app-data


【解决方案1】:

在你的 ASPX 中应该是

Inherits="nprah.Fishck"

.aspx 中的继承应该映射到您的代码文件 (.cs)...然后您的代码文件将像您已经做的那样从那里继承您的基本页。

并尝试验证:CodeFile="fish-creek.aspx.cs"。 因为您提供的文件名应该是:Codefile="fishck.aspx.cs"。 也许只是一个错字。

【讨论】:

  • +1 for the "and also.." 实际的类名与 aspx 页面中请求的类名似乎有所不同
  • 非常感谢!我不敢相信我在浏览我在谷歌上找到的例子时忽略了显而易见的事情。文件名混淆确实只是将其转移到 SO 的拼写错误。在原始问题中修复了它。
猜你喜欢
  • 2014-02-03
  • 2014-11-10
  • 2012-05-11
  • 1970-01-01
  • 1970-01-01
  • 2013-04-13
  • 2017-09-01
  • 2013-09-02
  • 1970-01-01
相关资源
最近更新 更多