我正在开发一个具有聊天功能的Web应用程序。我开始使用SignalR进行开发,但单独运行该特定网页时出现错误。这是我得到的错误。
Parser Error
Description: An error occurred during the parsing of a resource
required to service this request.Please review the following specific
parse error details and modify your source file appropriately.
Parser Error Message: 'Virtual_Classroom.chat' is not allowed here
because it does not extend class 'System.Web.UI.Page'.
Source Error:
Line 1: <%@ Page Language="C#" AutoEventWireup="true"
CodeBehind="chat.aspx.cs" Inherits="Virtual_Classroom.chat" %>
Line 2:
Line 3: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Source File: /chat.aspx Line: 1
Virtual Classroom是我项目的名称,chat.aspx是网页。我编译并单独使用chat.aspx页面运行.chat.aspx中的代码隐藏文件如下。
namespace Virtual_Classroom
{
[HubName("myChatHub")]
public partial class chat : Hub
{
public void send(string message)
{
Clients.All.addMessage(message);
}
}
}
为了使类从Hub类派生,我删除了System.Web.UI.Page并在上面的代码中添加了Hub。我知道这是导致错误。但我不知道如何摆脱这个错误 我是.Net的新手。请帮忙。谢谢!
答案 0 :(得分:0)
这很容易。您的网页chat.aspx
由两部分组成 - 布局( .aspx)和背后的代码( .aspx.cs),它们是同一个类的一部分,并且必需后面的代码中的类应该从System.Web.UI.Page
派生(如问题中所述)。因此,当您破坏页面时,应该还原此更改。
如果你想为聊天创建一个信号r hub - 你应该为它创建一个单独的类(在这种情况下,最好这个类也应该在一个单独的* .cs文件中),当然它的另一个名字 - 我认为ChatHub
适合你的情况。