user153923
user153923

Reputation:

Parser Error in Namespace?

I have a webpage that was built using the All In One style (the VB in the page with the HTML), and I have been asked to separate them.

This is how Default.aspx starts out:

<%@ Import Namespace="System.Net" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Configuration" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Globalization" %>
<%@ Import Namespace="System.Security" %>
<html>
<head>
  <title>View an Activity (AFE)</title>
  <script language="VB" runat="server">

    Private m_url1, m_url2, m_downloadText, txtSupplementPage, txtExcerpt, SearchLocation, SearchLocation2, SearchLocation3, SearchLocationOrig As String
    Private myTotal1, myTotal2 As Double
    Private m_credentials As CredentialCache

    ' Start the initial page
    Protected Sub Page_Load(sender As Object, e As EventArgs)
      m_credentials = New CredentialCache()
      If Not IsPostBack Then

It goes on. This is just to show you what I'm doing.

I created a new, similar file called that Default2.aspx that includes the Page directive, specifies the CodeBehind file, and the namespace (Inherits). Then I took the VB code out:

<%@ Page Language="vb" AutoEventWireup="true" CodeBehind="Default.aspx.vb" Inherits="app2._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head runat="server">
    <title>View an Activity (AFE)</title>

Since Default.aspx did not use a Code Behind file, I named my new Code Behind file Default.aspx.vb.

I created a new _Default with Namespace app2 within this Code Behind file, and I copied all of the VB from Default.aspx into it:

Namespace app2

  Public Class _Default

    Inherits System.Web.UI.Page
    Inherits System.Net
    Inherits System.IO
    Inherits System.Configuration
    Inherits System.Data
    Inherits System.Data.OleDb
    Inherits System.Data.SqlClient
    Inherits System.Globalization
    Inherits System.Security

    Private m_url1, m_url2, m_downloadText, txtSupplementPage, txtExcerpt, SearchLocation, SearchLocation2, SearchLocation3, SearchLocationOrig As String
    Private myTotal1, myTotal2 As Double
    Private m_credentials As CredentialCache

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
      m_credentials = New CredentialCache()
      If Not IsPostBack Then

I am trying to give enough code that everyone can see the starting points and where I am now.

I got the two new files uploaded to the web server, and then browsed to them to see how they would look.

However, now when I try to display Default2.aspx in the browser, I get this Parser Error:

Parser Error Message: Could not load type 'app2._Default'.

Source Error:

Line 1: <%@ Page Language="vb" AutoEventWireup="true" CodeBehind="Default.aspx.vb" Inherits="app2._Default" %>
Line 2:
Line 3:

What have I messed up?

Upvotes: 0

Views: 306

Answers (1)

singularhum
singularhum

Reputation: 5122

For a web site: Change CodeBehind to CodeFile.

 <%@ Page Language="vb" AutoEventWireup="true" CodeFile="Default.aspx.vb" Inherits="app2._Default" %>

For a web application: Add the name of the web project to the Inherits attribute.

 <%@ Page Language="vb" AutoEventWireup="true" CodeBehind="Default.aspx.vb" Inherits="nameOfYourWebProject.app2._Default" %>

Also, the _Default class you provided, you can only have one Inherits, I think you meant to add them as Imports on the top of the page.

Upvotes: 1

Related Questions