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”变量传递给我重定向到的页面。通常,当我成功使用重定向时,我使用输入类型 =“提交”。这里的区别在于这些是超链接,这无疑是原因。我宁愿保留超链接。

任何帮助表示赞赏。

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 回答