我是这个MVC架构的新手,所以请执行基本或不成熟的问题。
我需要实现搜索功能。我在Home Controller SearchFNW(searchstring)
中创建了一个操作。在这个方法中,我得到了一个包含搜索数据的ViewModel列表。
我将此列表传递给Index.cshtml并尝试在表中显示结果。
我可以将View Model的List数据提供给View。
Index.cshtml
@model List<First_Niagara_Works.ViewModels.AccountViewModel>
@{
@using (Html.BeginForm("Index", "Home"))
{
if (Model != null)
{
// code to populate table using model
}
}
}
Homecontroller.cs
public ActionResult SearchFNW(string FNWtodo, string SearchInput)
{
// all code to load viewmodels to list
return View(@"~/Views/Home/Index.cshtml", lstAccountVM);
}
public ActionResult Index()
{
return View();
}
问题:执行此代码后,它会重定向到Layout.cshtml,并从那里再次调用Index操作..并使用@ Html.beginform()重新开始。因此无法查看包含搜索结果的表格数据。
答案 0 :(得分:0)
尝试:
[HttpPost]
public ActionResult Index(string FNWtodo, string SearchInput)
{
// all code to load viewmodels to list
return View(lstAccountVM);
}
public ActionResult Index()
{
return View();
}
您的表单@using (Html.BeginForm("Index", "Home"))
会将POST
提交回控制器中的Index
操作。您只需要使用捕获[HttpPost]
的索引操作,它将返回Index
视图,但会返回您填充的模型。