asp.net - 控制器未从 MVC 上的视图(实现搜索功能)接收值
问题描述
我正在尝试制作具有搜索功能的页面。当您第一次进入该页面时,您所拥有的只是一个搜索栏。当您在搜索栏中输入内容并单击“提交”或“搜索”按钮时,我希望将搜索框中的值作为字符串提交给控制器。然后,此值可用于将模型返回到页面。这是我到目前为止所拥有的:
搜索.cshtml
@{
ViewBag.Title = "Search";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@ViewBag.PageTitle
<h1>Search All Issues</h1>
<form asp-controller="Report" asp-action="Search" method="get">
<input name="searchstr" id="Search" />
<input type="submit" value="Submit" />
</form>
报告控制器.cs
[HttpGet]
public ActionResult Search(string test)
{
ViewBag.PageTitle = test;
var report = _context.Reports.ToList();
return View(report);
}
我在这里做错了什么?现在,如果我能让 ViewBag.PageTitle 出现在页面上,那就太好了。如果我能做到这一点,那么我可以按照我想要的方式返回报表模型。
另外,还有几个问题。我在堆栈溢出中看到的一些内容建议在控制器中执行 Post。如果我这样做,页面就会出错。为什么需要 get 呢?直觉上,使用 Post 对我来说更有意义......
解决方案
原来我非常接近;斯蒂芬·穆克有正确的答案。我只需要更改我的输入名称或参数名称。
我犯了这个错误,因为我从 C++/C 的角度考虑这个参数名称可能无关紧要。不过,我现在看到,对于 ASP.NET MVC,您需要让输入名称与参数名称匹配。
谢谢您的帮助!
推荐阅读
- java - 我的 sql 异常:主键更新查询的重复条目
- android - Drawable 在列表视图中未正确打印
- docker - 使用 Klee docker 镜像时如何在 home/klee 下准备好源代码文件
- c# - 如果 Content-Type 为“text/plain”,则 GET RestSharp 请求返回空值,而如果 Content-Type 为“application/json”,则返回数据
- r - 使用 ggplot2 在 R 中绘制空间线
- wordpress - 我的 wordpress 网站不加载内容
- reactjs - Axios 有 CORS 问题
- django - 表单未显示 ValidationError
- ruby-on-rails - 如果使用 devise 出现错误,则将 css 类添加到输入
- wso2 - 从 DAS 升级 WSO2 SP