2016-03-25 7 views
1

コンパイルしようとしているVB ASP.NETのWebサイトのソースコードには、「」というファイルがあります。「bla.aspx.vb」ファイルが存在しません。「エラー。対応する.aspxファイルがありますが、コンパイルされた.aspx.vbコードビハインドファイルがありません。.aspxファイルのコードビハインドファイルが見つからない場合の推奨回避策は何ですか?

.aspxのファイルであるため、こののエラーMSGが表示されます。

<%@ 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.vbを作成できるようにする.aspxファイルのコンテキストメニュー項目がないことは、私にとってはむしろ気にならないものです。

答えて

1

には、コードビハインドファイルの項目に参照が含まれていて、コードビハインド内のものを再作成する必要があるため、ファイルを持つことができます。

必要なの最小値は、ページから継承するクラスです:

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です。したがって、あなたのページ宣言があなたのリストのとおりであれば、 'Public Class cms_ShowEscalatorRule Inherits 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でデザイナーとコードファイルを作成するのが一般的な提案です。 –