2

asp.net c# を使用して Web サイトを開発しており、ページ内にフォームを配置したいと考えています。aspx ページには form タグがあるため、HTML が無効になるため、この中に別のフォームをネストしたくありません。しかし、POST ではなく GET を使用するには、このフォームが必要です。asp:button でポストバック URL を変更できることはわかっています。コードビハインドでロジックを使用せずにこれを行うことはできますか?

  1. ページ上のすべてのものではなく、このフォームのためだけにメソッドを GET に変更します
  2. 可能であれば、ターゲットを _blank に変更してください。

私が欲しいもののhtmlの例。

<form action="http://maps.google.co.uk/maps" method="get">
<p><label for="saddr">Your postcode</label>
<input type="text" name="saddr" id="saddr" value="" />
<input type="submit" value="Go" />
<input type="hidden" name="daddr" value="[destination]" />
<input type="hidden" name="hl" value="en" /></p>
</form>
4

2 に答える 2

0

html には複数のフォームを含めることができます。ASP.NET ページは複数のフォーム タグもサポートしていますが、サーバー側のフォーム (runat="server") にできるのはそのうちの 1 つだけです。

したがって、ページ内に別のフォームタグを追加することをお勧めします-次のようなもの

...
<body>
  <form runat="server">
    ... server controls etc

  </form>
  <!-- your form -->
  <form action="http://maps.google.co.uk/maps" method="get">
    <p><label for="saddr">Your postcode</label>
    <input type="text" name="saddr" id="saddr" value="" />
    <input type="submit" value="Go" />
    <input type="hidden" name="daddr" value="[destination]" />
    <input type="hidden" name="hl" value="en" /></p>
  </form>
</body>
</html>

html タグにはサーバー側のコントロールを配置できないことに注意してください。そのため、HTML コントロールを使用し、Request オブジェクトを使用してページ コード内でそれらを管理する必要があります。

于 2011-11-11T08:30:45.743 に答える
0

これを達成するためにjqueryを使用できます

$(document).ready(function() {
 $("#buttonId").click(function() {
   $("#formId").attr("method", "get");
 });
});

上記のスニペットは、ID「buttonId」のボタンがクリックされると起動します。ID「formId」のフォームのメソッド属性を変更します

于 2011-11-11T08:26:12.787 に答える