どちらも削除することはできませんが、理由を聞いてください。ASPに慣れていないため、asp:
との意味を誤解していると感じていrunat="server"
ます。
最初:runat="server"
要素のこのプロパティは、これが実際にはサーバー側のコントロールであることをコンパイラに通知します。したがって、最初のプロパティ<button/>
は<button runat="server"/>
純粋なhtmlであり、2番目のプロパティはコントロールであり、にバインドできます。サーバ側。.NetはそれにclientIDを与えます(あなたがそれを自分で与えなければならないIDと間違えないでください)。
2番目:asp:
これは、特定の要素のプレフィックスであり、これらがASPコントロール(ASP.netフレームワークによって提供されるデフォルトのコントロール)であることをコンパイラーに通知します。これらには、Buttons、TextBoxes、DropDownListsなどが含まれます...これらの1つをhtml要素と間違えないでください。
an<asp:Button id="myAspButton" runat="server"/>
はと同じではありません<button id="myHtmlButton"/>
1つ目は、サーバー側のコントロールであり、バインドできます(その属性を参照)。このコントロールは、たとえばrunat="server"
ブラウザーにレンダリングされます。<input type="submit"/>
必要に応じて、asp.netボタンクラスのレンダリングを変更して、まったく異なるものを返すようにすることができます。
また、asp.netクラスの使用に限定されません。独自のコントロールを作成し、それらをカスタム作成されたライブラリに配置して、独自のプレフィックスを付けることができます。
このようなカスタムコントロールを作成した場合、そのプレフィックスをweb.configファイルに登録できるため、元のボタンから拡張するカスタムボタンを作成できます(ただし、デフォルトのラベルが前に付いています...
<myc:CustomButton ID="myButton" Text="myButton" Label="myLabel" runat="server"/>
これは次のようにレンダリングできます:
<label>myLabel</label>
<button ID="*******">myButton</button>
アスタリスクは、.netFrameworkから取得する一意のIDを表しています。
カスタムコントロールについて詳しく知りたい場合、またはデフォルトコントロールを拡張する場合は、カスタムコントロールを作成するか、TextBoxコントロールから拡張するためのステップバイステップの説明があります。また、コントロール(この場合は「cc」)にカスタムプレフィックスを追加する方法も示しています。
詳細については、こちらをご覧ください。