1
我有一個ASP.NET網站,包括所編程方式添加到ASP.NET Web窗體用戶控件,使用此代碼:爲什麼我的ASP.NET UserControl類型不能訪問?
var control = (Deal)LoadControl("Deal.ascx");
control.ImageFile = dealNode.SelectSingleNode("thumbnail").InnerText;
control.ProductName = dealNode.SelectSingleNode("product").InnerText;
control.PriceText = dealNode.SelectSingleNode("price").InnerText;
DealList.Controls.Add(control);
中的交易的控制是非常簡單的:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Deal.ascx.cs" Inherits="Deal" %>
<div class="deal">
<img id="DealImage" runat="server" class="dealimage" />
<div class="dealtext"><asp:Label ID="DealLabel" runat="server"></asp:Label></div>
<div class="dealprice"><asp:Label ID="DealPriceLabel" runat="server"></asp:Label></div>
</div>
與它後面的代碼:
public string ImageFile { get; set; }
public string ProductName { get; set; }
public string PriceText { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
this.DealImage.Src = "images/" + ImageFile;
this.DealLabel.Text = ProductName;
this.DealPriceLabel.Text = PriceText;
}
當我在Visual Studio 2010中運行起來的網站,它通常工作正常。但是,每隔一段時間(通常在簽入或重新啓動VS2010之後),它都會放棄並且不會編譯。我得到的錯誤:
The type or namespace name 'Deal' could not be found (are you missing a using directive or an assembly reference?)
的問題是該行投:
var control = (Deal)LoadControl("Deal.ascx");
如果我註釋掉UserControl的Page_Load中的代碼,重新編譯,然後取消註釋代碼並重新編譯,一切都OK一次。
誰能告訴我發生了什麼事?
,似乎工作!我不明白的是爲什麼它在沒有參考的情況下工作(間歇性地失敗)。 – Richard