【发布时间】:2012-06-17 23:45:36
【问题描述】:
我在 ASP.NET 中有一个包含嵌套页面的母版页。相当简单,我想将一些超链接数据绑定到母版页的网格视图。但是,当我尝试设置 DataSource 时,这会引发空引用异常。
- 我在单独的页面上测试了代码,它按预期工作。
- 调试的时候看到Page_Load Sub两次命中,不知道是不是这个原因
- 我正在加载一个嵌套页面,目前这是一个空白页面
例外
Object reference not set to an instance of an object.
母版代码隐藏
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
Using model = New AccessDataModelDataContext
Dim result = From x In model.SiteLinks
Where x.IsActive
Select x
SiteLinks.DataSource = result
SiteLinks.DataBind()
End Using
End If
End Sub
母版 ASPX 代码
<%@ Master Language="VB" AutoEventWireup="false" CodeBehind="Site.master.vb" Inherits="Access.Manager.Site" %>
<!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">
<link href="~/Styles/Styles.css" rel="stylesheet" type="text/css" />
<title></title>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<div>
Site.Master
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
<div class="navigation">
Site Links
<asp:GridView ID="SiteLinks" runat="server">
</asp:GridView>
</div>
<div class="content">Site Content</div>
</asp:ContentPlaceHolder>
</div>
</form>
</body>
</html>
【问题讨论】:
-
该代码隐藏在您的母版页还是使用您的母版页的页面?
-
这是母版页的代码。我会更新以澄清。
-
添加断点以验证
result不为空。我通常这样做的方式是提供最少的空结果(非空)。 -
谢谢 Jeremy,刚刚使用断点和
If result IsNot Nothing Then检查了它,但它仍然是一个问题...... -
检查 IsNot Nothing 是否有效?还是您仍然遇到异常?