Jamie Hartnoll
Jamie Hartnoll

Reputation: 7341

Apparently odd ASP.NET Page Behaviour... might just be newbie error?

I'm new to ASP.NET but have quite a few successful test pages going now which I am using to slowly build up a new website and data application... hence my many questions on here.

Anyway, in my efforts to understand JSON, I have a test page trying to get the data out, but for some reason the script works fine when it's all one page, but not as code behind.

My ASPX file is:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="json.aspx.vb" Inherits="jsonPage" %>
<!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></title>
</head>
<body>
    <form runat="server">
    Output:
        <div id="readOut" runat="server"></div>
    </form>
</body>
</html>

Code behind:

Imports Jayrock.Json.JsonTextWriter, Jayrock.Json, Jayrock.Json.Conversion, System.Net
Partial Class jsonPage
    Inherits System.Web.UI.Page
    Sub Page_Load(Sender As Object, E As EventArgs)
        Dim cMessage As String = "{""ID"": 8291,  ""Item"": ""Epiphone Les Paul Tribute Plus Outfit"",  ""Main Image"": ""8291-113247"",  ""Colour"": ""Vintage Sunburst"",  ""Option"": ""none"",  ""Price"": 549.0}"
        Dim objResponse As JsonObject = CType(JsonConvert.Import(cMessage), JsonObject)
        readOut.InnerText = "Item name is: " & objResponse("Item")
    End Sub
End Class

As I say, this is just a test code to try to get to grips with JSON, the text "Item name is:" followed by the result of the JSON parsing, should be posted into the div id="readOut" in the main ASPX page, but it won't... the strange thing is that it works is I take out the Page_Load sub and run the code in the head of the ASPX file.

I've tried comparing this to other files I have that are working and can find no obvious reason why this is happening.

Upvotes: 0

Views: 83

Answers (1)

Etch
Etch

Reputation: 3054

I think this may be your problem. I suspect you weren't even able to hit that code with a breakpoint?

Page_Load(Sender As Object, E As EventArgs)

Should have a handles clause.

Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Upvotes: 1

Related Questions