无法读取隐藏字段

时间:2012-04-26 09:50:02

标签: c# asp.net html

在部分页面(菜单)中我有:

@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”。这里的区别在于这些是超链接,这无疑是原因。我宁愿保留超链接。

感谢任何帮助。

1 个答案:

答案 0 :(得分: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>
}