2016-03-25 11 views
1

在我試圖編譯的VB ASP.NET網站的源代碼中,我有幾個「」文件'bla.aspx.vb'不存在「錯誤;有一個對應的.aspx文件,但缺少其伴侶.aspx.vb代碼隱藏文件。當.aspx文件的代碼隱藏文件丟失時,首選解決方法是什麼?

的錯誤味精顯示器,因爲這在.aspx文件:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Bla.aspx.vb" Inherits="cms_ShowEscalatorRule" %> 

只得到了項目編制(這僅僅是在本地運行的項目,我的代碼更改不會影響生產代碼),這將是最好:

0) Comment out that section entirely 
1) Remove the "CodeFile="Bla.aspx.vb" portion 
2) Add a code-behind file 

如果最後的選擇是最好的,什麼需要在它的代碼少量 - 就足以防止「丟失的文件」的錯誤?

對於我來說,對於.aspx文件沒有上下文菜單項,它允許創建最小的對應.aspx.vb。

回答

1

你可能會有一個文件,因爲.aspx可能有引用(並且你將不得不在代碼隱藏中重新創建它們)到代碼隱藏文件中的項目。

是更多有需要的最低限度是一類從頁面繼承:

public class Bla : System.Web.UI.Page 
{ 
} 

本 - 當然 - 不是強制性的 - 你不妨用另一種方法,並在服務器端內嵌代碼隱藏腳本塊在.aspx文件中。然而,前一種方法更加簡潔。

0

G. Stoynev基本上得到我所需要的東西,但由於這是VB,我不得不將其更改爲:

Public Class Bla 
    Inherits System.Web.UI.Page 
End Class 

我從來沒有使用過VB,所以我用this使譯文。

+1

在這種情況下,您的.vb文件中的類需要與您的頁面聲明中的「繼承」相匹配。在這個例子中:cms_ShowEscalatorRule。因此,如果您的頁面聲明與列出的一樣,則需要'公共類cms_ShowEscalatorRule繼承System.Web.UI.Page' –

+0

ShowEscalatorRule.aspx具有其第一行:CodeFile =「ShowEscalatorRule.aspx.vb」Inherits =「cms_ShowEscalatorRule」 我們會嘗試將ShowEscalatorRule.aspx.vb中的類名從「ShowEscalatorRule」更改爲「cms_ShowEscalatorRule」 - 這就是你的意思,對吧? –

+1

我不確定,但重新閱讀你的評論後是的。 Inherits =「...」必須與您在CodeFile中的類名完全一致。當事情發生錯誤時,它可能會變得相當煩人,這就是爲什麼從字面上重新創建頁面以便Visual Studio爲您創建設計器和代碼文件的常見建議。 –

相關問題