在部分页面(菜单)中我有:
@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”。这里的区别在于这些是超链接,这无疑是原因。我宁愿保留超链接。
感谢任何帮助。
答案 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>
}