我正在尝试使页面具有搜索功能。当您第一次进入页面时,您所拥有的只是一个搜索栏。当您在搜索栏中键入内容并单击“提交”或“搜索”按钮时,我希望将搜索框中的值作为字符串提交给控制器。然后,该值可用于将模型返回页面。这是我到目前为止的内容:
Search.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>
ReportController.cs
[HttpGet]
public ActionResult Search(string test)
{
ViewBag.PageTitle = test;
var report = _context.Reports.ToList();
return View(report);
}
我在这里做错了什么?现在,如果我能使ViewBag.PageTitle出现在页面上,那就太好了。如果可以的话,我可以按照自己想要的方式返回报告模型。
还有一些其他问题。我在堆栈溢出中看到的一些内容建议在控制器中执行Post。如果我这样做,页面错误。为什么需要获取?直观地,使用Post ...对我来说更有意义...
答案 0 :(得分:0)
结果证明我离我很近。 Stephen Muecke的回答正确。我只需要更改输入名称或参数名称即可。
我从C ++ / C角度考虑此错误时就犯了这个错误,因为参数名称可能是不相关的。我现在看到,但是,使用ASP.NET MVC,您需要使输入名称与参数名称匹配。
感谢您的帮助!