0

ユーザーの検証後にオンライン フォームを表示する ASP ページがあります。私は使用してResponse.Write "form goes here"いますが、フォームは非常に長いです (100 行以上)。

複数行の HTML で Response.Write を実行する方法はありますか? 私はこのようなことをしたい:

<%
If rs.rcount > 0 then
    response.write "
        <form>
            <input type="text" id="inputEmail">
    </form>"
End if
%>

どうもありがとう、

4

3 に答える 3

2

ではなく、コード ブロックを使用しますresponse.write

<%
...your VB ....

if a=b then
%>

<h1> HTML GOES HERE</h1>
<form>
<input type="text" id="inputEmail">

</form>


<%
end if

 ... more VB code
%>
于 2013-08-07T21:05:01.707 に答える
1

いくつかのオプションがありますが、どれを選択するかはいくつかの条件によって異なります...

(1) Diodeus が提案したように、コード ブロックを使用できます。

If rs.count > 0 Then
    %>
    <form>
    <input type="text" id="etc" />
    </form>
    <%
End If

(2) Yuriy Galanter が提案したように、文字列を連結してフォームを作成できます。

Dim sHTML;

sHTML = "<form>"
sHTML = sHTML & "<input type="text" id="etc" />"
'... etc.'
sHTML = "</form>"

If rs.rcount > 0 Then
    Response.Write sHTML
End If

(3) 最初に考えていたように、一度に 1 行または 3 行書き出すことができます。

If rs.rcount > 0 Then
    Response.Write "<form>"
    Response.Write "<input type="text" id="etc" />" & _
    "<input type="text" id="other" />" 
    'The underscore above indicates that the string/command/etc. continues on the next line, whitespace is ignored.'
    Response.Write "</form>"
End If

(4) 上記を自由に組み合わせてご利用いただけます


オプション 1 の利点は、HTML の準備ができていれば、かなり高速で、編集が簡単で、実装が簡単なことです。

オプション 2 の利点は、コンテキストの切り替えについて心配する必要がないことです (ASP 3 ではそれほど問題ではありませんが、十分に読んで調査すれば言及されていることがわかります)、(私の意見では) 簡単です。他のビジネス ロジックに基づいて変更される可能性のあるフォームの部分がある場合 (または、近い将来に必要になると思われる場合) に変数を挿入します。

オプション 3 の利点は、ビジネス ロジックに応じてフォームの一部を条件付きで表示/非表示/変更する方が簡単であることです (それ自体は問題のようには聞こえませんが、覚えておく価値があります)。

状況によっては、上記のいくつかを組み合わせた方法が最善の方法であることがわかる場合があります。文字列を連結すればするほど、メモリ管理が悪化することに注意してください。

テンプレートとより適切に管理された文字列連結を備えたいくつかのライブラリもあります ( ASP-Ajaxed - 完全開示、私は最近プロジェクトを引き継ぎました。まだ公式 Web サイトの再構築に取り組んでいます)。事後にこのようなものを追加することは必ずしも容易ではなく、既存のプロジェクトを変更するだけの場合 (新しいプロジェクトを作成する場合と比べて) やり過ぎになる可能性があります。

于 2013-08-07T21:32:52.553 に答える
0

変数内のステップでフォームを作成できます。

Dim sHTML;

sHTML = "<form>"
sHTML = sHTML & "<p><input type=""text"" id=""inputEmail""></p>"
'... etc.

Response.Write sHTML

入力要素を新しい行に配置するには、<br/>またはなどの HTML タグを使用します。<p></p>

ASP.NET/VB.NET を使用している場合は、StringBuilder を使用できます。これは、動的文字列を作成するのにはるかに効率的です。

于 2013-08-07T21:06:34.107 に答える