如何将参数添加到我的表单中
本文关键字:我的 表单 添加 参数 | 更新日期: 2023-09-27 18:27:30
<form method="post" class="search-form" action="?">
<fieldset>
<input class="search home_input_search" placeholder="Поиск" type="search" />
<input type="submit" class="subm but_search" value="" />
</fieldset>
</form>
我有一个表单 - 搜索,这是布局,我的任务在创建中一致,链接到带有 Products/index?search_name=something
等参数的控制器。而且我不知道如何在链接中转移值文本框。
将 onsubmit 事件处理程序添加到表单中,它应该:
- 使用查询字符串创建 URL ?search_name= 输入中的值
- 将 window.location.href 设置为创建的 URL
- 返回假
编辑:当然,您可以通过不同的方式实现它,在这种情况下不需要表单。
您必须
为input
提供他们在发布时应该拥有的name
,并在form
上设置正确的action
。输入上的name
决定了 URL 中的键(因为您使用 GET
方法(。在form
上设置action
将指示将其发送到何处。
<form method="post" class="search-form" action="Products/index" method="GET">
<fieldset>
<input name="search_name" class="search home_input_search" placeholder="Поиск" type="search" />
<input type="submit" class="subm but_search" value="" />
</fieldset>
</form>
首先,最好将控制器参数称为"searchName"而不是"search_name"。这与代码约定相对应。
接下来,当你在浏览器中调用Proudcts/index?search_name=somethink时,你正在发起GET请求。GET 请求没有正文,并与查询参数通信。
当您创建新表单并将其提交到服务器时,您正在启动 POST 请求(默认情况下(。发布请求具有包含请求参数的正文部分。
然后我们应该从视图开始。如果要使用查询字符串,则应显式创建 GET 窗体:
@using (Html.BeginForm("ControllerMethodName", "ControllerName", FormMethod.Get))
{
}
接下来,您应该使用与控制器方法参数中相同的名称将 name 属性添加到输入中:
<input class="search home_input_search" name="searchName" placeholder="Поиск" type="search" />
或者你可以使用 HtmlHelper 方法来生成 html:
@Html.TextBox("searchName", string.Empty, new Dictionary<string, object> { { "class", "search home_input_search" }, { "placeholder", "Поиск" } })
最后,您可以根据需要拥有任意数量的参数:
@using (Html.BeginForm("ControllerMethodName", "ControllerName", FormMethod.Get))
{
@Html.Label("Поиск")
@Html.TextBox("searchName", string.Empty, new Dictionary<string, object> { { "class", "search home_input_search" }, { "placeholder", "Поиск" } })
@Html.Label("Включая вложенные")
@Html.CheckBox("includeNested", true)
}