0

C#/Razor で書かれた Web ページがあります。次のように、このページのデータベースからすべての値を出力しています。

<div style="min-height: 150px; font-size: 1.25em">
    <div style="margin-bottom: .5em">
        <table>
            <thead>
                <tr>
                    <th>Name</th>
                    <th>Branch</th>
                    <th>Phone No.</th>
                    <th>Extension</th>
                    <th>Email</th>
                </tr>
            </thead>
            <tbody>
                @foreach (var prod in Model)
                {
                    <tr>
                        <td>@prod.FullName</td>
                        <td>@prod.Branch</td>
                        <td>@prod.PhoneNo</td>
                        <td>@prod.Extension</td>
                        <td>@prod.Email</td>
                        @if (User.IsInRole(@"Admins") || User.Identity.Name == prod.DomainAC)
                        {
                            <td><a href="/home/edit/@prod.Id"  style="color: blue;">edit</a></td>
                        }
                        else
                        {
                            <td>User => @User.ToString()</td>   
                        }
                        <td>
                            <input type="checkbox" name="message" value="@prod.PhoneNo">Message<br>
                        </td>
                    </tr>
                }
            </tbody>
        </table>
    </div>
</div>

これは、情報を表示するのにうまく機能します。私が今やりたいことは、もう少し難しいことです。

この下に、ユーザー名、パスワード、およびメッセージを含むフォームがあります。このフォームを使用して、送信時にフォームと上記の C# の入力ボックスの値を取得し、リンクを作成し、リンクに移動してサーバーの応答を出力するという動作をしたいと思います。

ので、私は持っています :

@{if (IsPost)
  {
     //handle and print response
  }
  else
  {
    <form method="post" action="">
        Username:<br />
        <input type="text" name="u" /><br />
        Password<br />
        <input type="text" name="p" /><br />
        <br />
        Password<br />
        <textarea name="m" cols="25" rows="5">
        Enter your comments here...
        </textarea><br>
        <br />
        <input type="submit" value="Submit" class="submit" />//when this is clicked, construct url and navigate to it.
    </form>
   }
}

このフォームから作成したい URL は次のとおりです。

http://webaddress.com/web/d.php?u=<Username entered by user>&p=<Password entered by user>&s=<List of Phone Numbers from the C# above where the checkbox is selected, comma separated>&m=<Comment submitted by user>

したがって、私の名前が「John」、パスワードが「Password1」、コメントが「Test」で、電話番号が「12345678」のユーザーのチェックボックスを 1 つ選択した場合、ナビゲートする URL は次のとおりです。

http://webaddress.com/web/d.php?u=John&p=Password1&s=12345678&m=Test

<div>理想的には、可能であれば新しいページに移動するのではなく、同じ親 Web ページに Web ページの応答をしばらく印刷したいと考えています。

どこから始めればよいのか、どうすればよいのか、それが可能かどうかさえわかりません。誰でも私を助けてくれますか?

アップデート :

このJQueryを試してみると、警告が表示されないため、デバッグできません:

    <script>
        $("#thebutton").click(function() {
            var form = $(document.getElementById('FormID'));
            var urlToConstruct = 'http://webaddress.com/web/d.php';
            urlToConstruct += '?u=' + form.find('#u').val();
            urlToConstruct += '&p=' + form.find('#p').val();
            ('#employeeTable tbody tr').has(':checkbox:checked').find('td:eq(2)').each(function() {
                urlToConstruct.append($(this).text());
                alert(urlToConstruct);
            })
        });
 </script>
4

1 に答える 1

1
$("#SubmitButtonID").click(function() {
    var form = $(document.getElementById('FormID');
    var urlToConstruct = 'http://webaddress.com/web/d.php';
    urlToConstruct += '?u=' + form.find('#iDoFInputControl1').val();
    urlToConstruct += '&p=' + form.find('#iDoFInputControl2').val();
    form.submit();
});

この例では、javascript ライブラリ (jquery.com) の jQuery を使用しています。getElementById を使用してフォームを見つけています。ネイティブの jQuery() セレクターよりも高速です。この例では、すべてのコントロールがフォーム内にあることを前提としています (ただし、そうでない場合は、電車のスマッシュではなく、使用できません(jQuery obj).find)。

.val()値を取得し、チェックボックスでも機能するはずですが、機能しない場合は、jquery を使用してチェックボックスから値を取得するための Google 検索をすばやく実行すると、大量の結果が返されます。

ps私はそのコードをほとんどフリーハンドで書いたので、ブラウザでチェックして完全に正しいことを確認していません。

更新...フォローアップの質問に答えるために...

mvc を使用している場合 (かみそりを使用していると仮定)、コントローラー内で、Request.Params["urlParameter"]またはRequest.Form["controlID"]ブラウザーから受け取ったものにアクセスできます。次に、これらの値を取得したら、それらを 'ViewBag' ( ViewBag.yourVariableHere="val") 内に配置して、 を介してビューでアクセスできるようにする@ViewBag.yourVariableHereか、ビューでもアクセスできる必要なデータをモデルに含めることができます。

于 2013-07-24T08:34:50.477 に答える