gpt4 book ai didi

asp.net-mvc - ASP.Net MVC : Form with Get Method Losing Parameters on Submit

转载 作者:行者123 更新时间:2023-12-01 12:01:14 24 4
gpt4 key购买 nike

假设我有这样一条路线:

"{controller}/{action}/{roomId}/{name}"

还有一个像这样的表单 Action (是的,它在 html 中的 Action 中看起来像这样,即服务器后处理):

Room/Index/6/SomeThing?pageNumber=1&amountToShow=5

形式很简单:

<form action = "Room/Index/6/SomeThing?pageNumber=1&amountToShow=5" method="get">
<button type="submit">SomeButton</button>
</form>

现在单击按钮时,请求似乎丢失了一半的 pageNumber=1&amountToShow=5 部分。事实上,当我查看 ActionExecutingContext.ActionParameters 列表时,参数在那里(pageNumber 和 amountToShow)但没有值。我什至查看了请求,尽管知道 url 是“Room/Index/6/SomeThing?pageNumber=1&amountToShow=5”,但没有请求参数。

我认为这可能与按钮和表单有关,也许这是不可能的,但后来我将路线调整为:

"{controller}/{action}/{roomId}/{name}/{pageNumber}/{amountToShow}"

它有效,除了 url 是 super 格式化的:

 Room/Index/6/SomeThing/1/5

这是意料之中的,因为这次它显然在完成它的工作。有什么想法吗?

更新

正如 Adrian Godong 在下面所建议的那样,我尝试使用隐藏输入并且它有效,但这仍然引发了更多问题。为什么使用更详细的路由能够处理没有隐藏值的请求参数,而缩短的路由却不能。

最佳答案

您是否尝试过将查询字符串参数移动到隐藏的输入字段中?

所以,试试这个,而不是你的表单 block :

<form action = "Room/Index/6/SomeThing" method="get">
<input type="hidden" name="pageNumber" value="1" />
<input type="hidden" name="amountToShow" value = "5" />
<button type="submit">SomeButton</button>
</form>

关于asp.net-mvc - ASP.Net MVC : Form with Get Method Losing Parameters on Submit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1189629/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com