0

ASP.NET がタグを使用して複数のフォームを作成することを許可していないという背後にある哲学は何runat=serverですか...

4

1 に答える 1

2

Web フォームは、良くも悪くも、基礎となるプラットフォームを抽象化することを意図した概念に基づいて構築されています。サーバー コントロール、サーバー イベント、ViewState、および UpdatePanels は、このアプローチの例です。

複数のフォームは不可能ではありませんが、自分のページにサーバー コントロールを追加し、それらを "そのまま動作" させたい初心者の開発者にとっては直感的ではありません。経験豊富な開発者にとっては良いことですが、新しい一連の注意事項が発生します (Web フォームには多くのニュアンスと注意事項があります)。

たとえば、GridViewフォーム A にa を追加し、DropDownListフォーム B に a を追加したとします。ドロップダウンはポストバックをトリガーしますが、フォーム B のデータのみがサーバーに投稿されます (これがフォームの仕組みです。一度に 1 つだけが投稿されます)。 )。

ただし、現在、GridView には、フォーム A に含まれていたすべての ViewState がありません。ページは完全に壊れています。

アドホックな ViewState 値はさらに扱いにくいものです。開発者は、必要なものを名前と値のペアとして ViewState に入れることができます。サーバーは、ViewState を取得するフォームをどのように決定する必要がありますか? それがすべてのフォームに入ると、それはページの肥大化です。

概要

  • 技術的に不可能というわけではありませんが、問題がメリットを上回る可能性があります。
  • <form>ASPX ページに1 秒を追加する方法があります (ただし、サーバーで実行されない場合があります)。
  • ページ上に複数のフォームが存在することはまったく問題ありません。これは、ASP.Net MVC が試みているように、プラットフォームと戦う/抽象化するのではなく、プラットフォームを操作することの多くの利点の 1 つです。
于 2013-04-02T23:29:17.237 に答える