1

非常に奇妙な問題があります。私のアプリケーションは PC では (通常どおり) 正常に動作しますが、本番環境にデプロイすると、次のようになります。

  • http://localpet.cloudapp.net/と入力してサイトにアクセスすると、別のドロップダウン リストをロードするためのドロップダウン リストから項目を選択すると、最初のドロップダウンから値がクリアされます。同じページにリダイレクトするか、更新します
  • http://localpet.cloudapp.net/Default.aspxを使用してサイトにアクセスすると、すべてが正常に機能し、すべてのポストバックが期待どおりに機能します

自分で試してみてください。私の URL にアクセスして、ドロップダウン ボックスから動物の種類を選択してみてください。値がクリアされます。ただし、ページ「Default.aspx」を指定すると、正常に機能します。明示的なページ リダイレクトは行っていません。ローカル PC で Casini と IIS の両方を試してみましたが、問題なく動作しました。助けてください

4

1 に答える 1

3

ASP.NET 4.0の変更点をご覧ください。

IIS 7 または IIS 7.5 統合モードの既定のドキュメントでイベント ハンドラーが発生しない場合があります。

ASP.NET 4 は、既定のドキュメントがマップされている拡張子のない URL に対して要求が行われたときに、HTML フォーム要素の action 属性値を空の文字列としてレンダリングするようになりました。たとえば、ASP.NET の以前のリリースでは、http: //contoso.com への要求は Default.aspx への要求になります。そのドキュメントでは、開始フォーム タグは次の例のようにレンダリングされます。

<form action="Default.aspx" />

ASP.NET 4 では、http: //contoso.com への要求は Default.aspx への要求にもなります。ただし、ASP.NET は、次の例のように HTML 開始フォーム タグをレンダリングするようになりました。

 <form action="" />

投稿されたリンク (記事) と SO スレッドに記載されているいくつかの回避策 -ポストバックは、既定のドキュメントとして aspx ページでは機能しません

アクション属性を設定する別の方法を次に示します。Default.aspx の Page_Load ハンドラに次のコードを記述する必要があります。

 HtmlForm form=Master.FindControl("form1") as HtmlForm;
 form.Action = "Default.aspx";
于 2012-06-08T02:50:03.673 に答える