Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 继承问题_C#_Asp.net_.net_Inheritance - Fatal编程技术网

C# 继承问题

C# 继承问题,c#,asp.net,.net,inheritance,C#,Asp.net,.net,Inheritance,再说一次,我对这类事情相当陌生,也许错误信息告诉我它是什么,我只是不理解,但是。。。此代码位于anon.cs中 namespace cheese.pies.org { using System; using System.IO; using System.Net; using System.Web; using System.Xml; public class CasLogin : System.Web.UI.Page {

再说一次,我对这类事情相当陌生,也许错误信息告诉我它是什么,我只是不理解,但是。。。此代码位于anon.cs中

namespace cheese.pies.org
{
    using System;
    using System.IO;
    using System.Net;
    using System.Web;
    using System.Xml;

    public class CasLogin : System.Web.UI.Page
    {
        private const string CasHost = "notimportant";

        public static string GetId()
        {
        }
}
最终在此处引用时给我一个错误:

<% @Page Language="C#" Inherits="CasLogin" CodeFile="CasLogin.cs" %>
<script language="C#" runat="server">
protected void Page_Load(object sender, EventArgs e) {
    String directoryId = CasLogin.GetId();
    FormsAuthentication.RedirectFromLoginPage(directoryId, false);
}
</script>

我得到这个错误:

编译器错误消息:CS0246:找不到类型或命名空间名称“Page”(是否缺少using指令或程序集引用?)

如果我将其从
公共类CasLogin:System.Web.UI.Page更改为
公共类CasLogin:Page
我收到这个错误

对于
页面
类(
System.Web.UI
),您缺少正确的
using
语句,因此,当您删除完整限定时,编译器将无法再找到
页面

您还应该在Page指令中完全限定类名,即
Inherits=“cheese.pies.org.CasLogin”

<% @Page Language="C#" Inherits="cheese.pies.org.CasLogin" CodeFile="CasLogin.cs" %>
<% @Page Language="C#" Inherits="CasLogin" CodeFile="CasLogin.cs" %>
应该是:

public partial class CasLogin : System.Web.UI.Page
这告诉编译器,
CasLogin
类是在多个文件中定义的(web表单就是这样;设计器文件与代码隐藏文件是分开的)


如果仍然不起作用,我建议重新创建页面并将任何相关代码复制到其中通常VisualStudio会自动处理所有这些问题,这不是问题。

我很确定应该是这样

<% @Page Language="C#" Inherits="cheese.pies.org.CasLogin" CodeFile="CasLogin.cs" %>
在不完全限定类名的情况下,它不知道您所说的是哪一页,因此您可以在声明类时显式声明,也可以使用using语句。第一个错误是相同的问题,它在chees.pies.org名称空间中看不到CasLogin类

Inherits="cheese.pies.org.CasLogin"

看看我自己的小测试项目/代码,我看到了一些明显不同的东西:“usings”出现在名称空间声明之前,而分部类的使用则出现在代码后面。另外,请注意,Inherits具有完全限定的类(包括命名空间)

在Default.aspx中

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication2._Default" %>

同样,错误会准确地告诉您出了什么问题:您是否缺少using指令或程序集引用答案是肯定的。在cheese.pies.org名称空间中确实有这两个名称,对吗?确保这些文件的所有名称空间都相同。此外,如果类使用代码隐藏,请确保将其定义为分部。e、 g.公共部分类\u默认值:System.Web.UI.page在anon.cs上包含此(
使用System.Web.UI;
)不会更改错误,很遗憾。另外,如果您在上面查看,则使用System.Web。Page不在
System.Web
中,它在
System.Web.UI
中。实际上,错误变为
ASPNET:确保此代码文件中定义的类与“inherits”属性匹配,并且它扩展了正确的基类(例如Page或UserControl).
查看我的更新和其他答案;您还需要在Page指令中完全限定基类名称
并将页面指令更改为
,出现新错误。嗯,有点老了。它现在对我大喊大叫说
编译器错误消息:CS0260:cheese.pies.org.CasLogin类型声明中缺少部分修饰符;存在此类型的另一个部分声明
。usings/namespace的顺序无关紧要,但其他项的顺序是正确的。
<% @Page Language="C#" Inherits="cheese.pies.org.CasLogin" CodeFile="CasLogin.cs" %>
using System.Web.UI;

public class CasLogin : Page
Inherits="cheese.pies.org.CasLogin"
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication2._Default" %>
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Diagnostics;
using System.Data;

namespace WebApplication2
{
    public partial class _Default : System.Web.UI.Page
    {