簡體   English   中英

需要幫助聲明代碼隱藏控件

[英]Help needed declaring code-behind controls

可以-可以比預期的更快獲得幫助。

我有一個ac#Web項目,但我的控件遇到問題。 我正在嘗試做一些非常簡單的事情-只是更改頁面上的幾個標簽。

當我嘗試構建項目時,它會出現NullReferenceException錯誤,我認為這可能是由於我沒有正確聲明控件而導致的。

我對C#還是很陌生,所以任何幫助將不勝感激。

我使用的代碼是:

protected void Page_Load(object sender, EventArgs e)
    {
         string[] allLines = File.ReadAllLines(Server.MapPath("Albums.txt"));
         Album[] Albums = new Album[allLines.Length];
         for (int i = 0; i < allLines.Length; i++)
         {
           string[] lineSplit = allLines[i].Split(',');
           Albums[i] = new Album();
           Albums[i].ID = Convert.ToInt32(lineSplit[0]);
           Albums[i].title = lineSplit[1];
           Albums[i].keyName = lineSplit[2];
       }

        this.albumID.Text = Convert.ToString(Albums[0].ID);
        this.albumTitle.Text = "Hello World";
        this.albumKeyName.Text = Albums[0].keyName;           
   }

並在VS創建的default.designer.cs頁面中定義了albumID,albumTitle和albumKeyName控件。

干杯,

PS-ASPX標記:

<body>
<form id="Form1" runat="server">
    <asp:Label ID="albumID" runat="server" Text="Label"></asp:Label>
    <asp:Label ID="albumTitle" runat="server" Text="Label"></asp:Label>
    <asp:Label ID="albumKeyName" runat="server" Text="Label"></asp:Label>
</form>

為了找出問題所在,我刪除了一部分代碼,只留下了以下內容:

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

        this.albumTitle.Text = "Hello World";          
   }
}

它在NelloReferenceException的“ Hello World”行中出錯-錯誤下方的詳細信息說:“對象引用未設置為對象的實例。”

抱歉,該陣列-看起來像是一條紅色鯡魚。

您是否設置了斷點並嘗試逐步解決?

我的建議是,首先確保allLines數組在訪問Length屬性之前不為null。

另一個可能的原因是allLines的長度為0,因此從未創建相冊。 (這意味着Albums[0].ID將為NullReferenceException)。

只要三個控件確實存在於標記中,這看起來就可以看到您的標記。

有很多地方可能為空lineSplit Albums[0]lineSplitallLines都是空值的候選者。

您的<%@ Page %>指令是什么樣的? 您是否有機會使用CodeBehind代替CodeFile

現在排序-仍然不知道錯誤是什么,但刪除了文件並重新創建了文件,一切正常。

把它弄成一個令人沮喪的謎。 :-(

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM