@using (Html.BeginForm(null, null, null, FormMethod.Get, new { id = "search" })) 怎么改成.net core6版本的呢,这个是老版本了
时间: 2024-11-13 07:19:17 浏览: 18
在.NET Core 6中,ASP.NET MVC 已经更新了它的API,不需要使用 `Html.BeginForm` 这样的古老的HTML助手方法。你可以直接使用 `form` 标签和 Razor 表达式语法来构建表单。这里是一个转换后的例子:
```razor
<form method="get" id="search" action="@Url.Action("YourActionName", "YourControllerName")">
<div>
<!-- 输入框和其它表单元素 -->
<input type="text" name="yourSearchTerm" asp-for="YourSearchTerm">
<button type="submit">搜索</button>
</div>
</form>
```
这里假设你要提交到控制器的 `YourActionName` 动作,并且有一个名为 `YourSearchTerm` 的模型属性用于接收搜索值。`asp-for` 是为了数据绑定,它会自动处理GET请求并传递参数给控制器。
注意,如果在.NET Core 6中使用Antiforgery(CSRF保护),你还需要添加一个隐藏字段来防止跨站伪造请求(CSRF):
```razor
<form method="get" id="search" action="@Url.Action("YourActionName", "YourControllerName)">
<input type="hidden" asp-validation-token="AntiForgeryToken">
<!-- 其他表单元素 -->
</form>
```
阅读全文