web-dev-qa-db-ja.com

新しいコントロールが.aspxに追加されたときにDesigner.csが更新されない

Aspxファイルに新しいコントロールを追加しましたが、新しいコントロールがデザイナーファイルに追加されなかっただけでなく、チームの他のメンバーによって追加された他のいくつかのコントロールも欠落していることに気付きました。 Designer.csファイルを削除し、「Webアプリケーションに変換」を使用してみましたが、成功しませんでした。私が試した他のいくつかのことは、プロジェクトからaspxを除外し、ビルドしてから、再組み込みして成功しませんでした。また、デザイナーに欠落していたコントロールを手動でデザイナーに入力しました。実行後に実行すると、実際には定義されていませんが、コントロールが定義されていないため、ディレクティブがないかどうかを確認する必要があることを示すエラーが表示されます。

追加した最初のコントロールは、同様のコントロールからコピーして貼り付け、必要な変更を加えました。しかし、手動でコントロールを作成しても同じ結果が得られました。

何か案は?

25
user819357

これを試す

1.-変更CodeBehind="Name.aspx.cs"からCodeFile ="Name.aspx.cs"

2.-ビルド

3.-変更CodeFile ="Name.aspx.cs"からCodeBehind ="Name.aspx.cs"

30

私は仕事でこの問題に苦しんでいます。

最も確実なことは、.designer.csファイルを再生成することであり、 here が解決策です。

  • ソリューションエクスプローラーで破損したaspx.designer.csファイルを見つけます
  • プロジェクトからdesigner.csファイルのみを削除します
  • メインのaspxファイルを右クリックして、「Webアプリケーションに変換」を選択します。
15
Jiangong SUN

Visual Studioを閉じてから、一時的なASP.NETファイルをC:\Windows\Microsoft.Net\Framework\Your_.Net_Version\ProjectNameから削除します。フォルダーProjectNameを削除して、Visual Studioを再起動します。しばらく前に同様の問題があり、これらのアクションによって解決されました。

IISを使用している場合、一時ファイルを削除できるようにするには、サーバー/サイトを停止する必要がある場合があります。

9
Kenan D

私にとっての解決策は:

ページをデザインビューに配置し、右クリック/更新します。コントロールをdesigner.csと同期します。これを行う前に、designer.csが閉じていることを確認してください。

ソース

6
bombek

VS 2013でデザイナーファイルを置き換えるには:

  1. 古い* .designer.csファイルを削除する
  2. * .aspxファイルを選択します
  3. プロジェクト上部のドロップダウンバーから「Webアプリケーションに変換」を選択します
6
Jake Hunter

同様の症状を引き起こす単純な/愚かな間違いの1つは、aspxファイルとaspx.csファイルをコピーして名前を変更し、ファイル内の参照の更新を怠った場合です。

Temp asp.netディレクトリを見つけようとしているこの質問に出くわしましたが、それをクリアしても役に立たませんでした。次に、ファイルをコピーしてページの新しい変更バージョンを作成した後、CodeFile="Page.ascx.cs"を更新していないことに気付きました。次に、コントロールを追加してPageModified.ascx.csで参照しようとしましたが、存在しないと言い続けました。

3
Thymine

私はVS2012でこれを行いました:

  1. Page.aspx.designer.csを開きます。同じタイプのコントロールの宣言(つまりLinkBut​​ton)を見つけます。
  2. それをファイルの最後にコピーします(クラスの中括弧の終わりの前)
  3. コントロールの名前と一致するようにコントロール変数の名前を変更します。

それでおしまい。

2
Papa Stahl

2つのコントロールが同じIDを持っているなど、htmlにエラーが発生する場合があります。また、divおよびspanタグにも注意してください。これらにより、デザイナーは更新されなくなります。これらすべてについて、エラーリストの警告を確認して修正します。あなたは行く準備ができています。これで私の問題は解決しました。

1
vanitha

私の場合、runat="server"属性を追加してから、ソリューションを再構築する必要がありました。不足している要素が生成されたaspx.designer.csに自動的に追加され、コードで使用できるようになりました

<button runat="server" id="Button01" type="button" class="Button" onclick="location.href='http://http://www.example.com/';">
   <asp:Label runat="server" Text='<%# GetText("Button01")%>'></asp:Label>
</button>
1

これは、同じ名前空間の別のユーザーコントロールを参照するユーザーコントロールがある場合にも発生するようです。参照されたユーザーコントロールを別の名前空間に移動すると、問題は解消されます

1
Leo

コードビハインドファイル内にコントロール宣言を手動で追加するだけで問題を解決できました。 design.csファイルを再生成しようとするたびに、VS 2013はコントロールが欠落することなく同じ行を書き込みます。

宣言は、.aspxが変更されるたびに削除されるため、design.csではなくコードビハインドに追加する必要があります。

他の変数に対して行うのと同じように、次のような宣言を追加します。

protected MyNameSpace.MyControl ControlName;
1
f.cipriani

考えられる解決策のリストに追加するだけです。私のマークアップファイルのこれらの行は、一見有効であるように見えますが、デザイナーファイルとの切断を引き起こしていたようです。

<%: Styles.Render("/my-file.css") %>
<%: Scripts.Render("/my-file.js") %>

私はそれらをコメントアウトして保存すると、設計されたファイルが正しく機能し始めました。次に、両方の行のコメントを外して保存し、問題なくページに新しいコントロールを追加することができました。私はこれを不思議に思いました、そして問題の最初の原因が何であったか私にはまだ分かりません。私はそれがVisual Studioのバグだと推測することしかできません。

つまり、問題を引き起こしている完全に有効なコードが存在する可能性があります。その場合、考えられる解決策は、デザイナーファイルが解決するまでマークアップファイル内のHTMLセクションをコメントアウトし、すべてのコメントを元に戻すことです。通常どおり作業を再開します。

0
StronglyTyped

Telerik Webコントロールのエラーが原因で、designer.vbコードファイルが更新されませんでした。MasterTableViewのDataKeyNames属性に誤った値がありました。これは単なる文字列値であるため、aspxエディターはデザイン時にこれを取得しませんでしたが、designer.vbファイルの自動生成が失敗していました。

0
PRS