2

部分的なページ (メニュー) には、次のようなものがあります。

@foreach (var category in db.Query("SELECT categoryName FROM Category")) {
    <li><a href="#">@category.categoryName</a>
        <ul class="submenu">
            <form action="/Products/?@Request.QueryString" method="post">
                <input type="hidden">
                    @Html.Hidden("cat", category.categoryName)
                </input>
            </form>
        </ul>
    </li>
}

リダイレクト先のページには、次のものがあります。

if (IsPost) {
    if (Request["cat"] != null) {
        <p>The category is @Request["cat"]!</p>
    }
}

正常にリダイレクトされますが、リダイレクト先のページに「cat」変数を渡すことができません。通常、リダイレクトを正常に使用する場合は、input type="submit" を使用します。ここでの違いは、これらがハイパーリンクであることです。これが間違いなく理由です。ハイパーリンクを保持したいと思います。

どんな助けでも大歓迎です。

4

1 に答える 1

1

フォームタグで値を送信するには、フォームを送信する必要があります。フォームを送信するためのコードがありません。

フォームの送信は通常input type="submit"、あなたが述べたように達成されますが、他の手法も可能です (たとえば、JavaScript でフォームを送信する)。

あなたの場合、本当にPOST.

代わりに、このアプローチはどうですか?

@foreach (var category in db.Query("SELECT categoryName FROM Category")) {
    <li>
        <a href="/Products/?@Request.QueryString&cat=@category.categoryName">
            @category.categoryName
        </a>
    </li>
}
于 2012-04-26T10:46:31.930 に答える